{
  "_format": "hh-sol-artifact-1",
  "contractName": "ContributionReward",
  "sourceName": "contracts/universalSchemes/ContributionReward.sol",
  "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"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "_stakingToken",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "balanceOfStakingToken",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "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"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "internalType": "int256",
          "name": "_param",
          "type": "int256"
        }
      ],
      "name": "executeProposal",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_voteApproveParams",
          "type": "bytes32"
        },
        {
          "internalType": "contract IntVoteInterface",
          "name": "_intVote",
          "type": "address"
        }
      ],
      "name": "getParametersHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_avatar",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_redeemType",
          "type": "uint256"
        }
      ],
      "name": "getPeriodsToPay",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "getProposalEthReward",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "getProposalExecutionTime",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "getProposalExternalToken",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "getProposalExternalTokenReward",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_avatar",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_redeemType",
          "type": "uint256"
        }
      ],
      "name": "getRedeemedPeriods",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "getTotalReputationSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "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"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "organizationsProposals",
      "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"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "parameters",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "voteApproveParams",
          "type": "bytes32"
        },
        {
          "internalType": "contract IntVoteInterface",
          "name": "intVote",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "proposalsInfo",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "blockNumber",
          "type": "uint256"
        },
        {
          "internalType": "contract Avatar",
          "name": "avatar",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "contract Avatar",
          "name": "_avatar",
          "type": "address"
        },
        {
          "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"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "internalType": "contract Avatar",
          "name": "_avatar",
          "type": "address"
        },
        {
          "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"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "internalType": "contract Avatar",
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "redeemEther",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "internalType": "contract Avatar",
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "redeemExternalToken",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "internalType": "contract Avatar",
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "redeemNativeToken",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "internalType": "contract Avatar",
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "redeemReputation",
      "outputs": [
        {
          "internalType": "int256",
          "name": "reputation",
          "type": "int256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "reputationOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_voteApproveParams",
          "type": "bytes32"
        },
        {
          "internalType": "contract IntVoteInterface",
          "name": "_intVote",
          "type": "address"
        }
      ],
      "name": "setParameters",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "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"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b5061326e806100206000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80639d4c162d116100c3578063d29b5d2f1161007c578063d29b5d2f146105d2578063d58bf09a14610604578063e074ee551461068d578063e63b681e146106bf578063f70bbb9a146106eb578063f81f8bf61461073357610158565b80639d4c162d146104b8578063b551c373146104ef578063b7c251c31461050c578063bb1c93511461053e578063bea75f281461056a578063cd3ce306146105a657610158565b80636046f71d116101155780636046f71d146102dd57806360bdbb3f1461030957806368e14dac146103355780636b8eb40314610361578063896488b91461038d5780639588378e1461048c57610158565b8063025068041461015d57806306e3a9781461019b5780630d5e1e821461021b5780631c3a5713146102595780632453732a146102855780633a256daa146102b1575b600080fd5b61017a6004803603602081101561017357600080fd5b5035610765565b604080519283526001600160a01b0390911660208301528051918290030190f35b6101c7600480360360408110156101b157600080fd5b506001600160a01b038135169060200135610787565b60408051998a5260208a0198909852888801969096526001600160a01b0394851660608901526080880193909352921660a086015260c085019190915260e084015261010083015251908190036101200190f35b6102476004803603604081101561023157600080fd5b50803590602001356001600160a01b03166107e5565b60408051918252519081900360200190f35b6102476004803603604081101561026f57600080fd5b50803590602001356001600160a01b0316610c5c565b6102476004803603604081101561029b57600080fd5b50803590602001356001600160a01b0316610c8a565b610247600480360360408110156102c757600080fd5b50803590602001356001600160a01b0316610cc9565b610247600480360360408110156102f357600080fd5b50803590602001356001600160a01b0316610cf1565b61017a6004803603604081101561031f57600080fd5b506001600160a01b038135169060200135610d19565b6102476004803603604081101561034b57600080fd5b50803590602001356001600160a01b0316610d43565b6102476004803603604081101561037757600080fd5b506001600160a01b038135169060200135610d88565b61024760048036036101408110156103a457600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156103cf57600080fd5b8201836020820111156103e157600080fd5b8035906020019184600183028401116401000000008311171561040357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805160a081810190925293968535969095909460c0820194509250602001906005908390839080828437600092019190915250919450505080356001600160a01b03908116925060209091013516610e46565b610247600480360360408110156104a257600080fd5b506001600160a01b03813516906020013561123c565b6104db600480360360408110156104ce57600080fd5b50803590602001356114ce565b604080519115158252519081900360200190f35b6102476004803603602081101561050557600080fd5b50356116d5565b6102476004803603606081101561052257600080fd5b508035906001600160a01b03602082013516906040013561195d565b6102476004803603604081101561055457600080fd5b50803590602001356001600160a01b031661199a565b6104db6004803603608081101561058057600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611ca4565b610247600480360360408110156105bc57600080fd5b50803590602001356001600160a01b0316611e46565b6104db600480360360608110156105e857600080fd5b508035906001600160a01b03602082013516906040013561215d565b610667600480360360c081101561061a57600080fd5b60408051608081810183528435946001600160a01b0360208201351694810193909260c0840192909184019060049083908390808284376000920191909152509194506122f69350505050565b604080519485526020850193909352838301919091526060830152519081900360800190f35b610247600480360360608110156106a357600080fd5b508035906001600160a01b036020820135169060400135612362565b610247600480360360408110156106d557600080fd5b50803590602001356001600160a01b0316612540565b6107176004803603604081101561070157600080fd5b50803590602001356001600160a01b031661287b565b604080516001600160a01b039092168252519081900360200190f35b6104db6004803603606081101561074957600080fd5b508035906001600160a01b0360208201351690604001356128a9565b600260205260009081526040902080546001909101546001600160a01b031682565b60016020818152600093845260408085209091529183529120805491810154600282015460038301546004840154600585015460068601546007870154600890970154959694956001600160a01b0394851695939490921692909189565b60006107ef612f98565b6001600160a01b038381166000908152600160208181526040808420898552825292839020835161014081018552815481529281015491830191909152600281015482840152600381015484166060830152600480820154608080850191909152600583015490951660a0840152600682015460c0840152600782015460e0840152600882015461010084015283519485019384905291939092610120850192600985019182845b81548152602001906001019080831161089757505050919092525050506001600160a01b0384166000908152600160209081526040808320888452909152902060088101549192509061091b5760405162461bcd60e51b81526004018080602001828103825260228152602001806131436022913960400191505060405180910390fd5b600061092986866000612362565b600060018401819055602085015182029550909150841315610a8c57846001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561097e57600080fd5b505afa158015610992573d6000803e3d6000fd5b505050506040513d60208110156109a857600080fd5b505160a08401516040805163757cca5960e11b8152600481018890526001600160a01b03928316602482015288831660448201529051919092169163eaf994b29160648083019260209291908290030181600087803b158015610a0a57600080fd5b505af1158015610a1e573d6000803e3d6000fd5b505050506040513d6020811015610a3457600080fd5b5051610a87576040805162461bcd60e51b815260206004820152601960248201527f6661696c656420746f206d696e742072657075746174696f6e00000000000000604482015290519081900360640190fd5b610bda565b6000841215610bda57846001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ace57600080fd5b505afa158015610ae2573d6000803e3d6000fd5b505050506040513d6020811015610af857600080fd5b505160a084015160408051630dd29a4f60e31b8152600088810360048301526001600160a01b039384166024830152898416604483015291519290931692636e94d2789260648083019360209383900390910190829087803b158015610b5d57600080fd5b505af1158015610b71573d6000803e3d6000fd5b505050506040513d6020811015610b8757600080fd5b5051610bda576040805162461bcd60e51b815260206004820152601960248201527f6661696c656420746f206275726e2072657075746174696f6e00000000000000604482015290519081900360640190fd5b8315610c4957610bf9816009840160005b01549063ffffffff612a0a16565b600983015560a08301516040805186815290516001600160a01b03928316928992908916917feab8bc4bf2fd6ce5634b8e75023e0e48367e68249ce2aa2c0ef7c0efe5648bee9181900360200190a45b5060209091015160019091015592915050565b6001600160a01b03811660009081526001602090815260408083208584529091529020600401545b92915050565b6040805160208082019490945260609290921b6bffffffffffffffffffffffff1916828201528051808303603401815260549092019052805191012090565b6001600160a01b03166000908152600160209081526040808320938352929052206008015490565b6001600160a01b03166000908152600160209081526040808320938352929052206002015490565b6000602081815292815260408082209093529081522080546001909101546001600160a01b031682565b600080610d508484610c8a565b600081815260026020526040902085815560010180546001600160a01b0386166001600160a01b031990911617905591505092915050565b336000908152602081815260408083208484529091528120600101546001600160a01b031680610dbc576000915050610c84565b836001600160a01b03166370a08231826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610e1257600080fd5b505afa158015610e26573d6000803e3d6000fd5b505050506040513d6020811015610e3c57600080fd5b5051949350505050565b6000610e528585612a64565b610e5a613002565b60026000610e678a612c55565b8152602080820192909252604090810160009081208251808401845281548082526001909201546001600160a01b039081168287018190528551634439bdaf60e11b8152600260048201526024810194909452336044850152908e166064840152935190955091936388737b5e9260848084019382900301818787803b158015610ef057600080fd5b505af1158015610f04573d6000803e3d6000fd5b505050506040513d6020811015610f1a57600080fd5b50519050836001600160a01b038116610f305750335b610f38612f98565b60408051610140810182528951815260208082018c90528a0151818301526001600160a01b03898116606080840191909152928b01516080830152841660a08201529089015160c082015260e08101896004602002015181526020016000815260200160405180608001604052806000815260200160008152602001600081526020016000815250815250905080600160008d6001600160a01b03166001600160a01b03168152602001908152602001600020600085815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506080820151816004015560a08201518160050160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060c0820151816006015560e082015181600701556101008201518160080155610120820151816009019060046110b5929190613019565b5090505083602001516001600160a01b0316838c6001600160a01b03167fcbdcbf9aaeb1e9eff0f75d74e1c1e044bc87110164baec7d18d825b0450d97df8d8d8d8d89604051808060200186815260200185600560200280838360005b8381101561112a578181015183820152602001611112565b50505050905001846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828103825287818151815260200191508051906020019080838360005b8381101561119657818101518382015260200161117e565b50505050905090810190601f1680156111c35780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a450506040805180820182524381526001600160a01b039a8b166020808301918252948501518c166000908152808652838120858252909552919093209251835551600190920180546001600160a01b0319169290991691909117909755509495945050505050565b336000908152602081815260408083208484528252808320600101548151638da5cb5b60e01b8152915185936001600160a01b03909216928392638da5cb5b92600480840193829003018186803b15801561129657600080fd5b505afa1580156112aa573d6000803e3d6000fd5b505050506040513d60208110156112c057600080fd5b505160408051639be2faed60e01b81523060048201526001600160a01b03848116602483015291519190921691639be2faed916044808301926020929190829003018186803b15801561131257600080fd5b505afa158015611326573d6000803e3d6000fd5b505050506040513d602081101561133c57600080fd5b505161138a576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b611392613002565b5033600090815260208181526040808320878452825291829020825180840190935280548352600101546001600160a01b03169082018190526113d95760009350506114c6565b80602001516001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b15801561141657600080fd5b505afa15801561142a573d6000803e3d6000fd5b505050506040513d602081101561144057600080fd5b505181516040805163277166bf60e11b81526001600160a01b038a81166004830152602482019390935290519190921691634ee2cd7e916044808301926020929190829003018186803b15801561149657600080fd5b505afa1580156114aa573d6000803e3d6000fd5b505050506040513d60208110156114c057600080fd5b50519350505b505092915050565b3360009081526020818152604080832085845290915281206001015483906001600160a01b031661153b576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b611543613002565b5033600090815260208181526040808320878452825280832081518083018352815481526001918201546001600160a01b0316818501819052855290835281842088855290925290912060080154156115da576040805162461bcd60e51b815260206004820152601460248201527363616e6e6f74206578656375746520747769636560601b604482015290519081900360640190fd5b6020808201516001600160a01b03908116600090815260018352604080822089835290935291909120600501541661164f576040805162461bcd60e51b81526020600482015260136024820152721c1c9bdc1bdcd85b081b5d5cdd08195e1a5cdd606a1b604482015290519081900360640190fd5b8360011415611684576020808201516001600160a01b0316600090815260018252604080822088835290925220426008909101555b8481602001516001600160a01b03167fd2632e80f5364f02aded1c64e8a04637b7c8bb9c2db2bedf4b6ac47c013acbc0866040518082815260200191505060405180910390a3506001949350505050565b336000908152602081815260408083208484528252808320600101548151638da5cb5b60e01b8152915185936001600160a01b03909216928392638da5cb5b92600480840193829003018186803b15801561172f57600080fd5b505afa158015611743573d6000803e3d6000fd5b505050506040513d602081101561175957600080fd5b505160408051639be2faed60e01b81523060048201526001600160a01b03848116602483015291519190921691639be2faed916044808301926020929190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b5051611823576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b61182b613002565b5033600090815260208181526040808320878452825291829020825180840190935280548352600101546001600160a01b0316908201819052611872576000935050611956565b80602001516001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b1580156118af57600080fd5b505afa1580156118c3573d6000803e3d6000fd5b505050506040513d60208110156118d957600080fd5b5051815160408051630981b24d60e41b81526004810192909252516001600160a01b039092169163981b24d091602480820192602092909190829003018186803b15801561192657600080fd5b505afa15801561193a573d6000803e3d6000fd5b505050506040513d602081101561195057600080fd5b50519350505b5050919050565b6001600160a01b03821660009081526001602090815260408083208684529091528120600901826004811061198e57fe5b015490505b9392505050565b60006119a4612f98565b6001600160a01b038381166000908152600160208181526040808420898552825292839020835161014081018552815481529281015491830191909152600281015482840152600381015484166060830152600480820154608080850191909152600583015490951660a0840152600682015460c0840152600782015460e0840152600882015461010084015283519485019384905291939092610120850192600985019182845b815481526020019060010190808311611a4c57505050919092525050506001600160a01b03841660009081526001602090815260408083208884529091529020600881015491925090611ad05760405162461bcd60e51b81526004018080602001828103825260228152602001806131436022913960400191505060405180910390fd5b6000611ade86866001612362565b600083558351909150611af890829063ffffffff612e6b16565b93508315611c9957846001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611b3957600080fd5b505afa158015611b4d573d6000803e3d6000fd5b505050506040513d6020811015611b6357600080fd5b505160a084015160408051633203f21960e11b8152600481018890526001600160a01b039283166024820152888316604482015290519190921691636407e4329160648083019260209291908290030181600087803b158015611bc557600080fd5b505af1158015611bd9573d6000803e3d6000fd5b505050506040513d6020811015611bef57600080fd5b5051611c3a576040805162461bcd60e51b81526020600482015260156024820152746661696c656420746f206d696e7420746f6b656e7360581b604482015290519081900360640190fd5b611c4981600984016001610beb565b600a83015560a08301516040805186815290516001600160a01b03928316928992908916917f13f7471cab9806ac4ff5d80ae879babfbf1081e240d05c4450b75f69c626cb2e9181900360200190a45b509051905592915050565b3360009081526020818152604080832084845290915281206001015482906001600160a01b0316611d11576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b336000908152602081815260408083208684529091529020600101546001600160a01b031680611d45576000925050611e3d565b806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611d7e57600080fd5b505afa158015611d92573d6000803e3d6000fd5b505050506040513d6020811015611da857600080fd5b50516040805163b9a04cdd60e01b81526001600160a01b038a8116600483015289811660248301526044820189905284811660648301529151919092169163b9a04cdd9160848083019260209291908290030181600087803b158015611e0d57600080fd5b505af1158015611e21573d6000803e3d6000fd5b505050506040513d6020811015611e3757600080fd5b50519250505b50949350505050565b6000611e50612f98565b6001600160a01b038381166000908152600160208181526040808420898552825292839020835161014081018552815481529281015491830191909152600281015482840152600381015484166060830152600480820154608080850191909152600583015490951660a0840152600682015460c0840152600782015460e0840152600882015461010084015283519485019384905291939092610120850192600985019182845b815481526020019060010190808311611ef857505050919092525050506001600160a01b03841660009081526001602090815260408083208884529091529020600881015491925090611f7c5760405162461bcd60e51b81526004018080602001828103825260228152602001806131436022913960400191505060405180910390fd5b6000611f8a86866002612362565b600060028401556040840151909150611faa90829063ffffffff612e6b16565b9350831561214a57846001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611feb57600080fd5b505afa158015611fff573d6000803e3d6000fd5b505050506040513d602081101561201557600080fd5b505160a0840151604080516331a4b2ed60e11b8152600481018890526001600160a01b03928316602482015288831660448201529051919092169163634965da9160648083019260209291908290030181600087803b15801561207757600080fd5b505af115801561208b573d6000803e3d6000fd5b505050506040513d60208110156120a157600080fd5b50516120eb576040805162461bcd60e51b81526020600482015260146024820152733330b4b632b2103a379039b2b7321032ba3432b960611b604482015290519081900360640190fd5b6120fa81600984016002610beb565b600b83015560a08301516040805186815290516001600160a01b03928316928992908916917f7dd55ea53ce2c347b544c257b778e1dd6638f232fa6b94320e740440e72b4b879181900360200190a45b5060409091015160029091015592915050565b3360009081526020818152604080832084845290915281206001015482906001600160a01b03166121ca576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b336000908152602081815260408083208684529091529020600101546001600160a01b0316806121fe5760009250506122ee565b806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561223757600080fd5b505afa15801561224b573d6000803e3d6000fd5b505050506040513d602081101561226157600080fd5b50516040805163757cca5960e11b8152600481018990526001600160a01b03888116602483015284811660448301529151919092169163eaf994b29160648083019260209291908290030181600087803b1580156122be57600080fd5b505af11580156122d2573d6000803e3d6000fd5b505050506040513d60208110156122e857600080fd5b50519250505b509392505050565b600080808084816020020151156123145761231187876107e5565b93505b60208501511561232b57612328878761199a565b92505b6040850151156123425761233f8787611e46565b91505b606085015115612359576123568787612540565b90505b93509350935093565b600060038211156123a45760405162461bcd60e51b81526004018080602001828103825260268152602001806131e06026913960400191505060405180910390fd5b6123ac612f98565b6001600160a01b0384811660009081526001602081815260408084208a8552825292839020835161014081018552815481529281015491830191909152600281015482840152600381015484166060830152600480820154608080850191909152600583015490951660a0840152600682015460c0840152600782015460e0840152600882015461010084015283519485019384905291939092610120850192600985019182845b8154815260200190600101908083116124545750505050508152505090508061010001516000141561248a576000915050611993565b60c0810151600090156124be5760c08201516101008301516124b390429063ffffffff612ec416565b816124ba57fe5b0490505b60008260c00151600014806124d757508260e001518210155b1561250d5761250683610120015186600481106124f057fe5b602002015160e08501519063ffffffff612ec416565b9050612536565b612533836101200151866004811061252157fe5b6020020151839063ffffffff612ec416565b90505b9695505050505050565b600061254a612f98565b6001600160a01b038381166000908152600160208181526040808420898552825292839020835161014081018552815481529281015491830191909152600281015482840152600381015484166060830152600480820154608080850191909152600583015490951660a0840152600682015460c0840152600782015460e0840152600882015461010084015283519485019384905291939092610120850192600985019182845b8154815260200190600101908083116125f257505050919092525050506001600160a01b038416600090815260016020908152604080832088845290915290206008810154919250906126765760405162461bcd60e51b81526004018080602001828103825260228152602001806131436022913960400191505060405180910390fd5b600061268486866003612362565b6000600484015560038301549091506001600160a01b0316158015906126ae575060008360800151115b156128685760808301516126c990829063ffffffff612e6b16565b9350831561286857846001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561270a57600080fd5b505afa15801561271e573d6000803e3d6000fd5b505050506040513d602081101561273457600080fd5b5051606084015160a08501516040805163b9a04cdd60e01b81526001600160a01b039384166004820152918316602483015260448201889052888316606483015251919092169163b9a04cdd9160848083019260209291908290030181600087803b1580156127a257600080fd5b505af11580156127b6573d6000803e3d6000fd5b505050506040513d60208110156127cc57600080fd5b50516128095760405162461bcd60e51b81526004018080602001828103825260218152602001806130936021913960400191505060405180910390fd5b61281881600984016003610beb565b600c83015560a08301516040805186815290516001600160a01b03928316928992908916917f5a66e28cdcd3bc22082d9f07be2b6bed5f50f349e5d89f655d750ecdd19883749181900360200190a45b5060809091015160049091015592915050565b6001600160a01b03908116600090815260016020908152604080832094835293905291909120600301541690565b3360009081526020818152604080832084845290915281206001015482906001600160a01b0316612916576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b336000908152602081815260408083208684529091529020600101546001600160a01b03168061294a5760009250506122ee565b806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561298357600080fd5b505afa158015612997573d6000803e3d6000fd5b505050506040513d60208110156129ad57600080fd5b505160408051630dd29a4f60e31b8152600481018990526001600160a01b038881166024830152848116604483015291519190921691636e94d2789160648083019260209291908290030181600087803b1580156122be57600080fd5b600082820183811015611993576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6060810151151580612a7a575060808101516001145b612ab55760405162461bcd60e51b81526004018080602001828103825260348152602001806130b46034913960400191505060405180910390fd5b608081015115612c51576080810151600019148015612ad7575081600160ff1b145b15612b135760405162461bcd60e51b81526004018080602001828103825260318152602001806131af6031913960400191505060405180910390fd5b6080810151829080820281612b2457fe5b0514612b615760405162461bcd60e51b81526004018080602001828103825260308152602001806131136030913960400191505060405180910390fd5b8051608082015180820281612b7257fe5b0414612baf5760405162461bcd60e51b815260040180806020018281038252602b8152602001806130e8602b913960400191505060405180910390fd5b6020810151608082015180820281612bc357fe5b0414612c005760405162461bcd60e51b81526004018080602001828103825260298152602001806131656029913960400191505060405180910390fd5b6040810151608082015180820281612c1457fe5b0414612c515760405162461bcd60e51b81526004018080602001828103825260348152602001806132066034913960400191505060405180910390fd5b5050565b6000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015612c9057600080fd5b505afa158015612ca4573d6000803e3d6000fd5b505050506040513d6020811015612cba57600080fd5b505160408051639be2faed60e01b81523060048201526001600160a01b03858116602483015291519190921691639be2faed916044808301926020929190829003018186803b158015612d0c57600080fd5b505afa158015612d20573d6000803e3d6000fd5b505050506040513d6020811015612d3657600080fd5b5051612d84576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015612dbd57600080fd5b505afa158015612dd1573d6000803e3d6000fd5b505050506040513d6020811015612de757600080fd5b505160408051630389aac160e31b81523060048201526001600160a01b03858116602483015291519190921691631c4d5608916044808301926020929190829003018186803b158015612e3957600080fd5b505afa158015612e4d573d6000803e3d6000fd5b505050506040513d6020811015612e6357600080fd5b505192915050565b600082612e7a57506000610c84565b82820282848281612e8757fe5b04146119935760405162461bcd60e51b815260040180806020018281038252602181526020018061318e6021913960400191505060405180910390fd5b600061199383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060008184841115612f905760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612f55578181015183820152602001612f3d565b50505050905090810190601f168015612f825780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180610140016040528060008152602001600081526020016000815260200160006001600160a01b031681526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001612ffd613057565b905290565b604080518082019091526000808252602082015290565b8260048101928215613047579160200282015b8281111561304757825182559160200191906001019061302c565b50613053929150613075565b5090565b60405180608001604052806004906020820280388339509192915050565b61308f91905b80821115613053576000815560010161307b565b9056fe6661696c656420746f207472616e736665722065787465726e616c20746f6b656e706572696f644c656e67746820657175616c20302072657175697265206e756d6265724f66506572696f647320746f20626520316e756d6265724f66506572696f6473202a20746f6b656e5265776172642077696c6c206f766572666c6f776e756d6265724f66506572696f6473202a2072657075746174696f6e4368616e67652077696c6c206f766572666c6f7763616e6e6f74206578656375746520756e617070726f7665642070726f706f73616c6e756d6265724f66506572696f6473202a206574685265776172642077696c6c206f766572666c6f77536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776e756d6265724f66506572696f6473202a205f72657075746174696f6e4368616e67652077696c6c206f766572666c6f7773686f756c6420626520696e207468652072656465656d6564506572696f64732072616e67656e756d6265724f66506572696f6473202a207465787465726e616c546f6b656e5265776172642077696c6c206f766572666c6f77a265627a7a7231582004b5a2fc5bce3f293a295317eeaa4640fd308a8e9d9735d377e7db1baf11a92664736f6c63430005110032",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101585760003560e01c80639d4c162d116100c3578063d29b5d2f1161007c578063d29b5d2f146105d2578063d58bf09a14610604578063e074ee551461068d578063e63b681e146106bf578063f70bbb9a146106eb578063f81f8bf61461073357610158565b80639d4c162d146104b8578063b551c373146104ef578063b7c251c31461050c578063bb1c93511461053e578063bea75f281461056a578063cd3ce306146105a657610158565b80636046f71d116101155780636046f71d146102dd57806360bdbb3f1461030957806368e14dac146103355780636b8eb40314610361578063896488b91461038d5780639588378e1461048c57610158565b8063025068041461015d57806306e3a9781461019b5780630d5e1e821461021b5780631c3a5713146102595780632453732a146102855780633a256daa146102b1575b600080fd5b61017a6004803603602081101561017357600080fd5b5035610765565b604080519283526001600160a01b0390911660208301528051918290030190f35b6101c7600480360360408110156101b157600080fd5b506001600160a01b038135169060200135610787565b60408051998a5260208a0198909852888801969096526001600160a01b0394851660608901526080880193909352921660a086015260c085019190915260e084015261010083015251908190036101200190f35b6102476004803603604081101561023157600080fd5b50803590602001356001600160a01b03166107e5565b60408051918252519081900360200190f35b6102476004803603604081101561026f57600080fd5b50803590602001356001600160a01b0316610c5c565b6102476004803603604081101561029b57600080fd5b50803590602001356001600160a01b0316610c8a565b610247600480360360408110156102c757600080fd5b50803590602001356001600160a01b0316610cc9565b610247600480360360408110156102f357600080fd5b50803590602001356001600160a01b0316610cf1565b61017a6004803603604081101561031f57600080fd5b506001600160a01b038135169060200135610d19565b6102476004803603604081101561034b57600080fd5b50803590602001356001600160a01b0316610d43565b6102476004803603604081101561037757600080fd5b506001600160a01b038135169060200135610d88565b61024760048036036101408110156103a457600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156103cf57600080fd5b8201836020820111156103e157600080fd5b8035906020019184600183028401116401000000008311171561040357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805160a081810190925293968535969095909460c0820194509250602001906005908390839080828437600092019190915250919450505080356001600160a01b03908116925060209091013516610e46565b610247600480360360408110156104a257600080fd5b506001600160a01b03813516906020013561123c565b6104db600480360360408110156104ce57600080fd5b50803590602001356114ce565b604080519115158252519081900360200190f35b6102476004803603602081101561050557600080fd5b50356116d5565b6102476004803603606081101561052257600080fd5b508035906001600160a01b03602082013516906040013561195d565b6102476004803603604081101561055457600080fd5b50803590602001356001600160a01b031661199a565b6104db6004803603608081101561058057600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611ca4565b610247600480360360408110156105bc57600080fd5b50803590602001356001600160a01b0316611e46565b6104db600480360360608110156105e857600080fd5b508035906001600160a01b03602082013516906040013561215d565b610667600480360360c081101561061a57600080fd5b60408051608081810183528435946001600160a01b0360208201351694810193909260c0840192909184019060049083908390808284376000920191909152509194506122f69350505050565b604080519485526020850193909352838301919091526060830152519081900360800190f35b610247600480360360608110156106a357600080fd5b508035906001600160a01b036020820135169060400135612362565b610247600480360360408110156106d557600080fd5b50803590602001356001600160a01b0316612540565b6107176004803603604081101561070157600080fd5b50803590602001356001600160a01b031661287b565b604080516001600160a01b039092168252519081900360200190f35b6104db6004803603606081101561074957600080fd5b508035906001600160a01b0360208201351690604001356128a9565b600260205260009081526040902080546001909101546001600160a01b031682565b60016020818152600093845260408085209091529183529120805491810154600282015460038301546004840154600585015460068601546007870154600890970154959694956001600160a01b0394851695939490921692909189565b60006107ef612f98565b6001600160a01b038381166000908152600160208181526040808420898552825292839020835161014081018552815481529281015491830191909152600281015482840152600381015484166060830152600480820154608080850191909152600583015490951660a0840152600682015460c0840152600782015460e0840152600882015461010084015283519485019384905291939092610120850192600985019182845b81548152602001906001019080831161089757505050919092525050506001600160a01b0384166000908152600160209081526040808320888452909152902060088101549192509061091b5760405162461bcd60e51b81526004018080602001828103825260228152602001806131436022913960400191505060405180910390fd5b600061092986866000612362565b600060018401819055602085015182029550909150841315610a8c57846001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561097e57600080fd5b505afa158015610992573d6000803e3d6000fd5b505050506040513d60208110156109a857600080fd5b505160a08401516040805163757cca5960e11b8152600481018890526001600160a01b03928316602482015288831660448201529051919092169163eaf994b29160648083019260209291908290030181600087803b158015610a0a57600080fd5b505af1158015610a1e573d6000803e3d6000fd5b505050506040513d6020811015610a3457600080fd5b5051610a87576040805162461bcd60e51b815260206004820152601960248201527f6661696c656420746f206d696e742072657075746174696f6e00000000000000604482015290519081900360640190fd5b610bda565b6000841215610bda57846001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ace57600080fd5b505afa158015610ae2573d6000803e3d6000fd5b505050506040513d6020811015610af857600080fd5b505160a084015160408051630dd29a4f60e31b8152600088810360048301526001600160a01b039384166024830152898416604483015291519290931692636e94d2789260648083019360209383900390910190829087803b158015610b5d57600080fd5b505af1158015610b71573d6000803e3d6000fd5b505050506040513d6020811015610b8757600080fd5b5051610bda576040805162461bcd60e51b815260206004820152601960248201527f6661696c656420746f206275726e2072657075746174696f6e00000000000000604482015290519081900360640190fd5b8315610c4957610bf9816009840160005b01549063ffffffff612a0a16565b600983015560a08301516040805186815290516001600160a01b03928316928992908916917feab8bc4bf2fd6ce5634b8e75023e0e48367e68249ce2aa2c0ef7c0efe5648bee9181900360200190a45b5060209091015160019091015592915050565b6001600160a01b03811660009081526001602090815260408083208584529091529020600401545b92915050565b6040805160208082019490945260609290921b6bffffffffffffffffffffffff1916828201528051808303603401815260549092019052805191012090565b6001600160a01b03166000908152600160209081526040808320938352929052206008015490565b6001600160a01b03166000908152600160209081526040808320938352929052206002015490565b6000602081815292815260408082209093529081522080546001909101546001600160a01b031682565b600080610d508484610c8a565b600081815260026020526040902085815560010180546001600160a01b0386166001600160a01b031990911617905591505092915050565b336000908152602081815260408083208484529091528120600101546001600160a01b031680610dbc576000915050610c84565b836001600160a01b03166370a08231826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610e1257600080fd5b505afa158015610e26573d6000803e3d6000fd5b505050506040513d6020811015610e3c57600080fd5b5051949350505050565b6000610e528585612a64565b610e5a613002565b60026000610e678a612c55565b8152602080820192909252604090810160009081208251808401845281548082526001909201546001600160a01b039081168287018190528551634439bdaf60e11b8152600260048201526024810194909452336044850152908e166064840152935190955091936388737b5e9260848084019382900301818787803b158015610ef057600080fd5b505af1158015610f04573d6000803e3d6000fd5b505050506040513d6020811015610f1a57600080fd5b50519050836001600160a01b038116610f305750335b610f38612f98565b60408051610140810182528951815260208082018c90528a0151818301526001600160a01b03898116606080840191909152928b01516080830152841660a08201529089015160c082015260e08101896004602002015181526020016000815260200160405180608001604052806000815260200160008152602001600081526020016000815250815250905080600160008d6001600160a01b03166001600160a01b03168152602001908152602001600020600085815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506080820151816004015560a08201518160050160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060c0820151816006015560e082015181600701556101008201518160080155610120820151816009019060046110b5929190613019565b5090505083602001516001600160a01b0316838c6001600160a01b03167fcbdcbf9aaeb1e9eff0f75d74e1c1e044bc87110164baec7d18d825b0450d97df8d8d8d8d89604051808060200186815260200185600560200280838360005b8381101561112a578181015183820152602001611112565b50505050905001846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828103825287818151815260200191508051906020019080838360005b8381101561119657818101518382015260200161117e565b50505050905090810190601f1680156111c35780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a450506040805180820182524381526001600160a01b039a8b166020808301918252948501518c166000908152808652838120858252909552919093209251835551600190920180546001600160a01b0319169290991691909117909755509495945050505050565b336000908152602081815260408083208484528252808320600101548151638da5cb5b60e01b8152915185936001600160a01b03909216928392638da5cb5b92600480840193829003018186803b15801561129657600080fd5b505afa1580156112aa573d6000803e3d6000fd5b505050506040513d60208110156112c057600080fd5b505160408051639be2faed60e01b81523060048201526001600160a01b03848116602483015291519190921691639be2faed916044808301926020929190829003018186803b15801561131257600080fd5b505afa158015611326573d6000803e3d6000fd5b505050506040513d602081101561133c57600080fd5b505161138a576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b611392613002565b5033600090815260208181526040808320878452825291829020825180840190935280548352600101546001600160a01b03169082018190526113d95760009350506114c6565b80602001516001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b15801561141657600080fd5b505afa15801561142a573d6000803e3d6000fd5b505050506040513d602081101561144057600080fd5b505181516040805163277166bf60e11b81526001600160a01b038a81166004830152602482019390935290519190921691634ee2cd7e916044808301926020929190829003018186803b15801561149657600080fd5b505afa1580156114aa573d6000803e3d6000fd5b505050506040513d60208110156114c057600080fd5b50519350505b505092915050565b3360009081526020818152604080832085845290915281206001015483906001600160a01b031661153b576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b611543613002565b5033600090815260208181526040808320878452825280832081518083018352815481526001918201546001600160a01b0316818501819052855290835281842088855290925290912060080154156115da576040805162461bcd60e51b815260206004820152601460248201527363616e6e6f74206578656375746520747769636560601b604482015290519081900360640190fd5b6020808201516001600160a01b03908116600090815260018352604080822089835290935291909120600501541661164f576040805162461bcd60e51b81526020600482015260136024820152721c1c9bdc1bdcd85b081b5d5cdd08195e1a5cdd606a1b604482015290519081900360640190fd5b8360011415611684576020808201516001600160a01b0316600090815260018252604080822088835290925220426008909101555b8481602001516001600160a01b03167fd2632e80f5364f02aded1c64e8a04637b7c8bb9c2db2bedf4b6ac47c013acbc0866040518082815260200191505060405180910390a3506001949350505050565b336000908152602081815260408083208484528252808320600101548151638da5cb5b60e01b8152915185936001600160a01b03909216928392638da5cb5b92600480840193829003018186803b15801561172f57600080fd5b505afa158015611743573d6000803e3d6000fd5b505050506040513d602081101561175957600080fd5b505160408051639be2faed60e01b81523060048201526001600160a01b03848116602483015291519190921691639be2faed916044808301926020929190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b5051611823576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b61182b613002565b5033600090815260208181526040808320878452825291829020825180840190935280548352600101546001600160a01b0316908201819052611872576000935050611956565b80602001516001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b1580156118af57600080fd5b505afa1580156118c3573d6000803e3d6000fd5b505050506040513d60208110156118d957600080fd5b5051815160408051630981b24d60e41b81526004810192909252516001600160a01b039092169163981b24d091602480820192602092909190829003018186803b15801561192657600080fd5b505afa15801561193a573d6000803e3d6000fd5b505050506040513d602081101561195057600080fd5b50519350505b5050919050565b6001600160a01b03821660009081526001602090815260408083208684529091528120600901826004811061198e57fe5b015490505b9392505050565b60006119a4612f98565b6001600160a01b038381166000908152600160208181526040808420898552825292839020835161014081018552815481529281015491830191909152600281015482840152600381015484166060830152600480820154608080850191909152600583015490951660a0840152600682015460c0840152600782015460e0840152600882015461010084015283519485019384905291939092610120850192600985019182845b815481526020019060010190808311611a4c57505050919092525050506001600160a01b03841660009081526001602090815260408083208884529091529020600881015491925090611ad05760405162461bcd60e51b81526004018080602001828103825260228152602001806131436022913960400191505060405180910390fd5b6000611ade86866001612362565b600083558351909150611af890829063ffffffff612e6b16565b93508315611c9957846001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611b3957600080fd5b505afa158015611b4d573d6000803e3d6000fd5b505050506040513d6020811015611b6357600080fd5b505160a084015160408051633203f21960e11b8152600481018890526001600160a01b039283166024820152888316604482015290519190921691636407e4329160648083019260209291908290030181600087803b158015611bc557600080fd5b505af1158015611bd9573d6000803e3d6000fd5b505050506040513d6020811015611bef57600080fd5b5051611c3a576040805162461bcd60e51b81526020600482015260156024820152746661696c656420746f206d696e7420746f6b656e7360581b604482015290519081900360640190fd5b611c4981600984016001610beb565b600a83015560a08301516040805186815290516001600160a01b03928316928992908916917f13f7471cab9806ac4ff5d80ae879babfbf1081e240d05c4450b75f69c626cb2e9181900360200190a45b509051905592915050565b3360009081526020818152604080832084845290915281206001015482906001600160a01b0316611d11576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b336000908152602081815260408083208684529091529020600101546001600160a01b031680611d45576000925050611e3d565b806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611d7e57600080fd5b505afa158015611d92573d6000803e3d6000fd5b505050506040513d6020811015611da857600080fd5b50516040805163b9a04cdd60e01b81526001600160a01b038a8116600483015289811660248301526044820189905284811660648301529151919092169163b9a04cdd9160848083019260209291908290030181600087803b158015611e0d57600080fd5b505af1158015611e21573d6000803e3d6000fd5b505050506040513d6020811015611e3757600080fd5b50519250505b50949350505050565b6000611e50612f98565b6001600160a01b038381166000908152600160208181526040808420898552825292839020835161014081018552815481529281015491830191909152600281015482840152600381015484166060830152600480820154608080850191909152600583015490951660a0840152600682015460c0840152600782015460e0840152600882015461010084015283519485019384905291939092610120850192600985019182845b815481526020019060010190808311611ef857505050919092525050506001600160a01b03841660009081526001602090815260408083208884529091529020600881015491925090611f7c5760405162461bcd60e51b81526004018080602001828103825260228152602001806131436022913960400191505060405180910390fd5b6000611f8a86866002612362565b600060028401556040840151909150611faa90829063ffffffff612e6b16565b9350831561214a57846001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611feb57600080fd5b505afa158015611fff573d6000803e3d6000fd5b505050506040513d602081101561201557600080fd5b505160a0840151604080516331a4b2ed60e11b8152600481018890526001600160a01b03928316602482015288831660448201529051919092169163634965da9160648083019260209291908290030181600087803b15801561207757600080fd5b505af115801561208b573d6000803e3d6000fd5b505050506040513d60208110156120a157600080fd5b50516120eb576040805162461bcd60e51b81526020600482015260146024820152733330b4b632b2103a379039b2b7321032ba3432b960611b604482015290519081900360640190fd5b6120fa81600984016002610beb565b600b83015560a08301516040805186815290516001600160a01b03928316928992908916917f7dd55ea53ce2c347b544c257b778e1dd6638f232fa6b94320e740440e72b4b879181900360200190a45b5060409091015160029091015592915050565b3360009081526020818152604080832084845290915281206001015482906001600160a01b03166121ca576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b336000908152602081815260408083208684529091529020600101546001600160a01b0316806121fe5760009250506122ee565b806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561223757600080fd5b505afa15801561224b573d6000803e3d6000fd5b505050506040513d602081101561226157600080fd5b50516040805163757cca5960e11b8152600481018990526001600160a01b03888116602483015284811660448301529151919092169163eaf994b29160648083019260209291908290030181600087803b1580156122be57600080fd5b505af11580156122d2573d6000803e3d6000fd5b505050506040513d60208110156122e857600080fd5b50519250505b509392505050565b600080808084816020020151156123145761231187876107e5565b93505b60208501511561232b57612328878761199a565b92505b6040850151156123425761233f8787611e46565b91505b606085015115612359576123568787612540565b90505b93509350935093565b600060038211156123a45760405162461bcd60e51b81526004018080602001828103825260268152602001806131e06026913960400191505060405180910390fd5b6123ac612f98565b6001600160a01b0384811660009081526001602081815260408084208a8552825292839020835161014081018552815481529281015491830191909152600281015482840152600381015484166060830152600480820154608080850191909152600583015490951660a0840152600682015460c0840152600782015460e0840152600882015461010084015283519485019384905291939092610120850192600985019182845b8154815260200190600101908083116124545750505050508152505090508061010001516000141561248a576000915050611993565b60c0810151600090156124be5760c08201516101008301516124b390429063ffffffff612ec416565b816124ba57fe5b0490505b60008260c00151600014806124d757508260e001518210155b1561250d5761250683610120015186600481106124f057fe5b602002015160e08501519063ffffffff612ec416565b9050612536565b612533836101200151866004811061252157fe5b6020020151839063ffffffff612ec416565b90505b9695505050505050565b600061254a612f98565b6001600160a01b038381166000908152600160208181526040808420898552825292839020835161014081018552815481529281015491830191909152600281015482840152600381015484166060830152600480820154608080850191909152600583015490951660a0840152600682015460c0840152600782015460e0840152600882015461010084015283519485019384905291939092610120850192600985019182845b8154815260200190600101908083116125f257505050919092525050506001600160a01b038416600090815260016020908152604080832088845290915290206008810154919250906126765760405162461bcd60e51b81526004018080602001828103825260228152602001806131436022913960400191505060405180910390fd5b600061268486866003612362565b6000600484015560038301549091506001600160a01b0316158015906126ae575060008360800151115b156128685760808301516126c990829063ffffffff612e6b16565b9350831561286857846001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561270a57600080fd5b505afa15801561271e573d6000803e3d6000fd5b505050506040513d602081101561273457600080fd5b5051606084015160a08501516040805163b9a04cdd60e01b81526001600160a01b039384166004820152918316602483015260448201889052888316606483015251919092169163b9a04cdd9160848083019260209291908290030181600087803b1580156127a257600080fd5b505af11580156127b6573d6000803e3d6000fd5b505050506040513d60208110156127cc57600080fd5b50516128095760405162461bcd60e51b81526004018080602001828103825260218152602001806130936021913960400191505060405180910390fd5b61281881600984016003610beb565b600c83015560a08301516040805186815290516001600160a01b03928316928992908916917f5a66e28cdcd3bc22082d9f07be2b6bed5f50f349e5d89f655d750ecdd19883749181900360200190a45b5060809091015160049091015592915050565b6001600160a01b03908116600090815260016020908152604080832094835293905291909120600301541690565b3360009081526020818152604080832084845290915281206001015482906001600160a01b0316612916576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b336000908152602081815260408083208684529091529020600101546001600160a01b03168061294a5760009250506122ee565b806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561298357600080fd5b505afa158015612997573d6000803e3d6000fd5b505050506040513d60208110156129ad57600080fd5b505160408051630dd29a4f60e31b8152600481018990526001600160a01b038881166024830152848116604483015291519190921691636e94d2789160648083019260209291908290030181600087803b1580156122be57600080fd5b600082820183811015611993576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6060810151151580612a7a575060808101516001145b612ab55760405162461bcd60e51b81526004018080602001828103825260348152602001806130b46034913960400191505060405180910390fd5b608081015115612c51576080810151600019148015612ad7575081600160ff1b145b15612b135760405162461bcd60e51b81526004018080602001828103825260318152602001806131af6031913960400191505060405180910390fd5b6080810151829080820281612b2457fe5b0514612b615760405162461bcd60e51b81526004018080602001828103825260308152602001806131136030913960400191505060405180910390fd5b8051608082015180820281612b7257fe5b0414612baf5760405162461bcd60e51b815260040180806020018281038252602b8152602001806130e8602b913960400191505060405180910390fd5b6020810151608082015180820281612bc357fe5b0414612c005760405162461bcd60e51b81526004018080602001828103825260298152602001806131656029913960400191505060405180910390fd5b6040810151608082015180820281612c1457fe5b0414612c515760405162461bcd60e51b81526004018080602001828103825260348152602001806132066034913960400191505060405180910390fd5b5050565b6000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015612c9057600080fd5b505afa158015612ca4573d6000803e3d6000fd5b505050506040513d6020811015612cba57600080fd5b505160408051639be2faed60e01b81523060048201526001600160a01b03858116602483015291519190921691639be2faed916044808301926020929190829003018186803b158015612d0c57600080fd5b505afa158015612d20573d6000803e3d6000fd5b505050506040513d6020811015612d3657600080fd5b5051612d84576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015612dbd57600080fd5b505afa158015612dd1573d6000803e3d6000fd5b505050506040513d6020811015612de757600080fd5b505160408051630389aac160e31b81523060048201526001600160a01b03858116602483015291519190921691631c4d5608916044808301926020929190829003018186803b158015612e3957600080fd5b505afa158015612e4d573d6000803e3d6000fd5b505050506040513d6020811015612e6357600080fd5b505192915050565b600082612e7a57506000610c84565b82820282848281612e8757fe5b04146119935760405162461bcd60e51b815260040180806020018281038252602181526020018061318e6021913960400191505060405180910390fd5b600061199383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060008184841115612f905760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612f55578181015183820152602001612f3d565b50505050905090810190601f168015612f825780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180610140016040528060008152602001600081526020016000815260200160006001600160a01b031681526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001612ffd613057565b905290565b604080518082019091526000808252602082015290565b8260048101928215613047579160200282015b8281111561304757825182559160200191906001019061302c565b50613053929150613075565b5090565b60405180608001604052806004906020820280388339509192915050565b61308f91905b80821115613053576000815560010161307b565b9056fe6661696c656420746f207472616e736665722065787465726e616c20746f6b656e706572696f644c656e67746820657175616c20302072657175697265206e756d6265724f66506572696f647320746f20626520316e756d6265724f66506572696f6473202a20746f6b656e5265776172642077696c6c206f766572666c6f776e756d6265724f66506572696f6473202a2072657075746174696f6e4368616e67652077696c6c206f766572666c6f7763616e6e6f74206578656375746520756e617070726f7665642070726f706f73616c6e756d6265724f66506572696f6473202a206574685265776172642077696c6c206f766572666c6f77536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776e756d6265724f66506572696f6473202a205f72657075746174696f6e4368616e67652077696c6c206f766572666c6f7773686f756c6420626520696e207468652072656465656d6564506572696f64732072616e67656e756d6265724f66506572696f6473202a207465787465726e616c546f6b656e5265776172642077696c6c206f766572666c6f77a265627a7a7231582004b5a2fc5bce3f293a295317eeaa4640fd308a8e9d9735d377e7db1baf11a92664736f6c63430005110032",
  "linkReferences": {},
  "deployedLinkReferences": {}
}