{
  "_format": "hh-sol-artifact-1",
  "contractName": "GlobalConstraintRegistrar",
  "sourceName": "contracts/universalSchemes/GlobalConstraintRegistrar.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": "address",
          "name": "_gc",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "_params",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "_voteToRemoveParams",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "_descriptionHash",
          "type": "string"
        }
      ],
      "name": "NewGlobalConstraintsProposal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "ProposalDeleted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "int256",
          "name": "_param",
          "type": "int256"
        }
      ],
      "name": "ProposalExecuted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_intVoteInterface",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_gc",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "_descriptionHash",
          "type": "string"
        }
      ],
      "name": "RemoveGlobalConstraintsProposal",
      "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": "_voteRegisterParams",
          "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"
        }
      ],
      "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": "address",
          "name": "gc",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "addGC",
          "type": "bool"
        },
        {
          "internalType": "bytes32",
          "name": "params",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "voteToRemoveParams",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "parameters",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "voteRegisterParams",
          "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": "address",
          "name": "_gc",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_params",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_voteToRemoveParams",
          "type": "bytes32"
        },
        {
          "internalType": "string",
          "name": "_descriptionHash",
          "type": "string"
        }
      ],
      "name": "proposeGlobalConstraint",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "contract Avatar",
          "name": "_avatar",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_gc",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "_descriptionHash",
          "type": "string"
        }
      ],
      "name": "proposeToRemoveGC",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "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": "_voteRegisterParams",
          "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"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "voteToRemoveParams",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50611d95806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80637a35630411610097578063b551c37311610066578063b551c37314610471578063bea75f281461048e578063d29b5d2f146104ca578063f81f8bf6146104fc576100f5565b80637a356304146103215780639588378e146103e05780639d4c162d1461040c578063a3379f9014610443576100f5565b806360bdbb3f116100d357806360bdbb3f146101d257806368e14dac146101fe5780636b8eb4031461022a578063776fdd2414610256576100f5565b806302506804146100fa57806306e3a978146101385780632453732a14610194575b600080fd5b6101176004803603602081101561011057600080fd5b503561052e565b604080519283526001600160a01b0390911660208301528051918290030190f35b6101646004803603604081101561014e57600080fd5b506001600160a01b038135169060200135610550565b604080516001600160a01b0390951685529215156020850152838301919091526060830152519081900360800190f35b6101c0600480360360408110156101aa57600080fd5b50803590602001356001600160a01b031661058f565b60408051918252519081900360200190f35b610117600480360360408110156101e857600080fd5b506001600160a01b0381351690602001356105d1565b6101c06004803603604081101561021457600080fd5b50803590602001356001600160a01b03166105fb565b6101c06004803603604081101561024057600080fd5b506001600160a01b038135169060200135610640565b6101c0600480360360a081101561026c57600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a0810160808201356401000000008111156102ac57600080fd5b8201836020820111156102be57600080fd5b803590602001918460018302840111640100000000831117156102e057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106fe945050505050565b6101c06004803603606081101561033757600080fd5b6001600160a01b03823581169260208101359091169181019060608101604082013564010000000081111561036b57600080fd5b82018360208201111561037d57600080fd5b8035906020019184600183028401116401000000008311171561039f57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506109df945050505050565b6101c0600480360360408110156103f657600080fd5b506001600160a01b038135169060200135610db8565b61042f6004803603604081101561042257600080fd5b508035906020013561104a565b604080519115158252519081900360200190f35b6101c06004803603604081101561045957600080fd5b506001600160a01b03813581169160200135166113cb565b6101c06004803603602081101561048757600080fd5b50356113e8565b61042f600480360360808110156104a457600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611670565b61042f600480360360608110156104e057600080fd5b508035906001600160a01b036020820135169060400135611812565b61042f6004803603606081101561051257600080fd5b508035906001600160a01b0360208201351690604001356119ab565b600360205260009081526040902080546001909101546001600160a01b031682565b600160208181526000938452604080852090915291835291208054918101546002909101546001600160a01b03831692600160a01b900460ff16919084565b6040805160208082018590526bffffffffffffffffffffffff19606085901b168284015282516034818403018152605490920190925280519101205b92915050565b6000602081815292815260408082209093529081522080546001909101546001600160a01b031682565b600080610608848461058f565b600081815260036020526040902085815560010180546001600160a01b0386166001600160a01b031990911617905591505092915050565b336000908152602081815260408083208484529091528120600101546001600160a01b0316806106745760009150506105cb565b836001600160a01b03166370a08231826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156106ca57600080fd5b505afa1580156106de573d6000803e3d6000fd5b505050506040513d60208110156106f457600080fd5b5051949350505050565b6000610708611d22565b6003600061071589611b0c565b8152602080820192909252604090810160009081208251808401845281548082526001909201546001600160a01b039081168287018190528551634439bdaf60e11b8152600260048201526024810194909452336044850152908d16606484015293519095509293919284926388737b5e926084808201939182900301818787803b1580156107a357600080fd5b505af11580156107b7573d6000803e3d6000fd5b505050506040513d60208110156107cd57600080fd5b505190506107d9611d39565b60405180608001604052808a6001600160a01b0316815260200160011515815260200189815260200188815250905080600160008c6001600160a01b03166001600160a01b03168152602001908152602001600020600084815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160000160146101000a81548160ff0219169083151502179055506040820151816001015560608201518160020155905050826001600160a01b0316828b6001600160a01b03167f91844be4872bbec71676ddd1d7a85222f6e62f10f70887042e501b0a7a5e28f28c8c8c8c60405180856001600160a01b03166001600160a01b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561093e578181015183820152602001610926565b50505050905090810190601f16801561096b5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a4506040805180820182524381526001600160a01b039a8b166020808301918252948c166000908152808652838120858252909552919093209251835551600190920180546001600160a01b0319169290991691909117909755509495945050505050565b600080846001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a1b57600080fd5b505afa158015610a2f573d6000803e3d6000fd5b505050506040513d6020811015610a4557600080fd5b505160408051637bb2445f60e11b81526001600160a01b038781166004830152888116602483015291519293509083169163f76488be91604480820192602092909190829003018186803b158015610a9c57600080fd5b505afa158015610ab0573d6000803e3d6000fd5b505050506040513d6020811015610ac657600080fd5b5051610ad157600080fd5b610ad9611d22565b60036000610ae688611b0c565b81526020808201929092526040908101600090812082518084018452815481526001909101546001600160a01b039081168286018190528b82168085526002808852868620938d168652928752858520548651634439bdaf60e11b815260048101949094526024840152336044840152606483015293519195509293919284926388737b5e9260848084019382900301818787803b158015610b8757600080fd5b505af1158015610b9b573d6000803e3d6000fd5b505050506040513d6020811015610bb157600080fd5b50519050610bbd611d39565b6040518060800160405280896001600160a01b031681526020016000151581526020016000801b81526020016000801b815250905080600160008b6001600160a01b03166001600160a01b03168152602001908152602001600020600084815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160000160146101000a81548160ff0219169083151502179055506040820151816001015560608201518160020155905050826001600160a01b0316828a6001600160a01b03167f4adc38b95e17c3b3410caa223e957ebc5cfdae71c60f1801e8fd328ca82858138b8b60405180836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610d1a578181015183820152602001610d02565b50505050905090810190601f168015610d475780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4506040805180820182524381526001600160a01b03998a166020808301918252948b166000908152808652838120858252909552919093209251835551600190920180546001600160a01b03191692909816919091179096555093949350505050565b336000908152602081815260408083208484528252808320600101548151638da5cb5b60e01b8152915185936001600160a01b03909216928392638da5cb5b92600480840193829003018186803b158015610e1257600080fd5b505afa158015610e26573d6000803e3d6000fd5b505050506040513d6020811015610e3c57600080fd5b505160408051639be2faed60e01b81523060048201526001600160a01b03848116602483015291519190921691639be2faed916044808301926020929190829003018186803b158015610e8e57600080fd5b505afa158015610ea2573d6000803e3d6000fd5b505050506040513d6020811015610eb857600080fd5b5051610f06576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b610f0e611d22565b5033600090815260208181526040808320878452825291829020825180840190935280548352600101546001600160a01b0316908201819052610f55576000935050611042565b80602001516001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b158015610f9257600080fd5b505afa158015610fa6573d6000803e3d6000fd5b505050506040513d6020811015610fbc57600080fd5b505181516040805163277166bf60e11b81526001600160a01b038a81166004830152602482019390935290519190921691634ee2cd7e916044808301926020929190829003018186803b15801561101257600080fd5b505afa158015611026573d6000803e3d6000fd5b505050506040513d602081101561103c57600080fd5b50519350505b505092915050565b3360009081526020818152604080832085845290915281206001015483906001600160a01b03166110b7576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b3360009081526020818152604080832087845290915290206001908101546001600160a01b0316906110e7611d39565b506001600160a01b0382811660009081526001602081815260408084208b855282529283902083516080810185528154958616808252600160a01b90960460ff1615159281019290925291820154928101929092526002015460608201529061114f57600080fd5b6001600160a01b03831660008181526001602081815260408084208c855290915280832080546001600160a81b03191681559182018390556002909101829055518992917f6bc0cb9e9967b59a69ace442598e1df4368d38661bd5c0800fbcbc9fe855fbbe91a38560011415611381576000836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156111fa57600080fd5b505afa15801561120e573d6000803e3d6000fd5b505050506040513d602081101561122457600080fd5b50516020830151909150156112f15781516040808401518151633914de9d60e21b81526001600160a01b0393841660048201526024810191909152868316604482015290519183169163e4537a74916064808201926020929091908290030181600087803b15801561129557600080fd5b505af11580156112a9573d6000803e3d6000fd5b505050506040513d60208110156112bf57600080fd5b505160608301516001600160a01b03808716600090815260026020908152604080832088519094168352929052205592505b816020015161137f578151604080516327a95adf60e11b81526001600160a01b0392831660048201528683166024820152905191831691634f52b5be916044808201926020929091908290030181600087803b15801561135057600080fd5b505af1158015611364573d6000803e3d6000fd5b505050506040513d602081101561137a57600080fd5b505192505b505b60408051878152905188916001600160a01b038616917fd2632e80f5364f02aded1c64e8a04637b7c8bb9c2db2bedf4b6ac47c013acbc09181900360200190a35095945050505050565b600260209081526000928352604080842090915290825290205481565b336000908152602081815260408083208484528252808320600101548151638da5cb5b60e01b8152915185936001600160a01b03909216928392638da5cb5b92600480840193829003018186803b15801561144257600080fd5b505afa158015611456573d6000803e3d6000fd5b505050506040513d602081101561146c57600080fd5b505160408051639be2faed60e01b81523060048201526001600160a01b03848116602483015291519190921691639be2faed916044808301926020929190829003018186803b1580156114be57600080fd5b505afa1580156114d2573d6000803e3d6000fd5b505050506040513d60208110156114e857600080fd5b5051611536576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b61153e611d22565b5033600090815260208181526040808320878452825291829020825180840190935280548352600101546001600160a01b0316908201819052611585576000935050611669565b80602001516001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b1580156115c257600080fd5b505afa1580156115d6573d6000803e3d6000fd5b505050506040513d60208110156115ec57600080fd5b5051815160408051630981b24d60e41b81526004810192909252516001600160a01b039092169163981b24d091602480820192602092909190829003018186803b15801561163957600080fd5b505afa15801561164d573d6000803e3d6000fd5b505050506040513d602081101561166357600080fd5b50519350505b5050919050565b3360009081526020818152604080832084845290915281206001015482906001600160a01b03166116dd576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b336000908152602081815260408083208684529091529020600101546001600160a01b031680611711576000925050611809565b806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561174a57600080fd5b505afa15801561175e573d6000803e3d6000fd5b505050506040513d602081101561177457600080fd5b50516040805163b9a04cdd60e01b81526001600160a01b038a8116600483015289811660248301526044820189905284811660648301529151919092169163b9a04cdd9160848083019260209291908290030181600087803b1580156117d957600080fd5b505af11580156117ed573d6000803e3d6000fd5b505050506040513d602081101561180357600080fd5b50519250505b50949350505050565b3360009081526020818152604080832084845290915281206001015482906001600160a01b031661187f576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b336000908152602081815260408083208684529091529020600101546001600160a01b0316806118b35760009250506119a3565b806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118ec57600080fd5b505afa158015611900573d6000803e3d6000fd5b505050506040513d602081101561191657600080fd5b50516040805163757cca5960e11b8152600481018990526001600160a01b03888116602483015284811660448301529151919092169163eaf994b29160648083019260209291908290030181600087803b15801561197357600080fd5b505af1158015611987573d6000803e3d6000fd5b505050506040513d602081101561199d57600080fd5b50519250505b509392505050565b3360009081526020818152604080832084845290915281206001015482906001600160a01b0316611a18576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b336000908152602081815260408083208684529091529020600101546001600160a01b031680611a4c5760009250506119a3565b806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a8557600080fd5b505afa158015611a99573d6000803e3d6000fd5b505050506040513d6020811015611aaf57600080fd5b505160408051630dd29a4f60e31b8152600481018990526001600160a01b038881166024830152848116604483015291519190921691636e94d2789160648083019260209291908290030181600087803b15801561197357600080fd5b6000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611b4757600080fd5b505afa158015611b5b573d6000803e3d6000fd5b505050506040513d6020811015611b7157600080fd5b505160408051639be2faed60e01b81523060048201526001600160a01b03858116602483015291519190921691639be2faed916044808301926020929190829003018186803b158015611bc357600080fd5b505afa158015611bd7573d6000803e3d6000fd5b505050506040513d6020811015611bed57600080fd5b5051611c3b576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c7457600080fd5b505afa158015611c88573d6000803e3d6000fd5b505050506040513d6020811015611c9e57600080fd5b505160408051630389aac160e31b81523060048201526001600160a01b03858116602483015291519190921691631c4d5608916044808301926020929190829003018186803b158015611cf057600080fd5b505afa158015611d04573d6000803e3d6000fd5b505050506040513d6020811015611d1a57600080fd5b505192915050565b604080518082019091526000808252602082015290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fea265627a7a72315820d0ce8e562286141a92a54a66589c74b61d61bce61e8071c6e8e31dec745355f764736f6c63430005110032",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80637a35630411610097578063b551c37311610066578063b551c37314610471578063bea75f281461048e578063d29b5d2f146104ca578063f81f8bf6146104fc576100f5565b80637a356304146103215780639588378e146103e05780639d4c162d1461040c578063a3379f9014610443576100f5565b806360bdbb3f116100d357806360bdbb3f146101d257806368e14dac146101fe5780636b8eb4031461022a578063776fdd2414610256576100f5565b806302506804146100fa57806306e3a978146101385780632453732a14610194575b600080fd5b6101176004803603602081101561011057600080fd5b503561052e565b604080519283526001600160a01b0390911660208301528051918290030190f35b6101646004803603604081101561014e57600080fd5b506001600160a01b038135169060200135610550565b604080516001600160a01b0390951685529215156020850152838301919091526060830152519081900360800190f35b6101c0600480360360408110156101aa57600080fd5b50803590602001356001600160a01b031661058f565b60408051918252519081900360200190f35b610117600480360360408110156101e857600080fd5b506001600160a01b0381351690602001356105d1565b6101c06004803603604081101561021457600080fd5b50803590602001356001600160a01b03166105fb565b6101c06004803603604081101561024057600080fd5b506001600160a01b038135169060200135610640565b6101c0600480360360a081101561026c57600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a0810160808201356401000000008111156102ac57600080fd5b8201836020820111156102be57600080fd5b803590602001918460018302840111640100000000831117156102e057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106fe945050505050565b6101c06004803603606081101561033757600080fd5b6001600160a01b03823581169260208101359091169181019060608101604082013564010000000081111561036b57600080fd5b82018360208201111561037d57600080fd5b8035906020019184600183028401116401000000008311171561039f57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506109df945050505050565b6101c0600480360360408110156103f657600080fd5b506001600160a01b038135169060200135610db8565b61042f6004803603604081101561042257600080fd5b508035906020013561104a565b604080519115158252519081900360200190f35b6101c06004803603604081101561045957600080fd5b506001600160a01b03813581169160200135166113cb565b6101c06004803603602081101561048757600080fd5b50356113e8565b61042f600480360360808110156104a457600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611670565b61042f600480360360608110156104e057600080fd5b508035906001600160a01b036020820135169060400135611812565b61042f6004803603606081101561051257600080fd5b508035906001600160a01b0360208201351690604001356119ab565b600360205260009081526040902080546001909101546001600160a01b031682565b600160208181526000938452604080852090915291835291208054918101546002909101546001600160a01b03831692600160a01b900460ff16919084565b6040805160208082018590526bffffffffffffffffffffffff19606085901b168284015282516034818403018152605490920190925280519101205b92915050565b6000602081815292815260408082209093529081522080546001909101546001600160a01b031682565b600080610608848461058f565b600081815260036020526040902085815560010180546001600160a01b0386166001600160a01b031990911617905591505092915050565b336000908152602081815260408083208484529091528120600101546001600160a01b0316806106745760009150506105cb565b836001600160a01b03166370a08231826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156106ca57600080fd5b505afa1580156106de573d6000803e3d6000fd5b505050506040513d60208110156106f457600080fd5b5051949350505050565b6000610708611d22565b6003600061071589611b0c565b8152602080820192909252604090810160009081208251808401845281548082526001909201546001600160a01b039081168287018190528551634439bdaf60e11b8152600260048201526024810194909452336044850152908d16606484015293519095509293919284926388737b5e926084808201939182900301818787803b1580156107a357600080fd5b505af11580156107b7573d6000803e3d6000fd5b505050506040513d60208110156107cd57600080fd5b505190506107d9611d39565b60405180608001604052808a6001600160a01b0316815260200160011515815260200189815260200188815250905080600160008c6001600160a01b03166001600160a01b03168152602001908152602001600020600084815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160000160146101000a81548160ff0219169083151502179055506040820151816001015560608201518160020155905050826001600160a01b0316828b6001600160a01b03167f91844be4872bbec71676ddd1d7a85222f6e62f10f70887042e501b0a7a5e28f28c8c8c8c60405180856001600160a01b03166001600160a01b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561093e578181015183820152602001610926565b50505050905090810190601f16801561096b5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a4506040805180820182524381526001600160a01b039a8b166020808301918252948c166000908152808652838120858252909552919093209251835551600190920180546001600160a01b0319169290991691909117909755509495945050505050565b600080846001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a1b57600080fd5b505afa158015610a2f573d6000803e3d6000fd5b505050506040513d6020811015610a4557600080fd5b505160408051637bb2445f60e11b81526001600160a01b038781166004830152888116602483015291519293509083169163f76488be91604480820192602092909190829003018186803b158015610a9c57600080fd5b505afa158015610ab0573d6000803e3d6000fd5b505050506040513d6020811015610ac657600080fd5b5051610ad157600080fd5b610ad9611d22565b60036000610ae688611b0c565b81526020808201929092526040908101600090812082518084018452815481526001909101546001600160a01b039081168286018190528b82168085526002808852868620938d168652928752858520548651634439bdaf60e11b815260048101949094526024840152336044840152606483015293519195509293919284926388737b5e9260848084019382900301818787803b158015610b8757600080fd5b505af1158015610b9b573d6000803e3d6000fd5b505050506040513d6020811015610bb157600080fd5b50519050610bbd611d39565b6040518060800160405280896001600160a01b031681526020016000151581526020016000801b81526020016000801b815250905080600160008b6001600160a01b03166001600160a01b03168152602001908152602001600020600084815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160000160146101000a81548160ff0219169083151502179055506040820151816001015560608201518160020155905050826001600160a01b0316828a6001600160a01b03167f4adc38b95e17c3b3410caa223e957ebc5cfdae71c60f1801e8fd328ca82858138b8b60405180836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610d1a578181015183820152602001610d02565b50505050905090810190601f168015610d475780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4506040805180820182524381526001600160a01b03998a166020808301918252948b166000908152808652838120858252909552919093209251835551600190920180546001600160a01b03191692909816919091179096555093949350505050565b336000908152602081815260408083208484528252808320600101548151638da5cb5b60e01b8152915185936001600160a01b03909216928392638da5cb5b92600480840193829003018186803b158015610e1257600080fd5b505afa158015610e26573d6000803e3d6000fd5b505050506040513d6020811015610e3c57600080fd5b505160408051639be2faed60e01b81523060048201526001600160a01b03848116602483015291519190921691639be2faed916044808301926020929190829003018186803b158015610e8e57600080fd5b505afa158015610ea2573d6000803e3d6000fd5b505050506040513d6020811015610eb857600080fd5b5051610f06576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b610f0e611d22565b5033600090815260208181526040808320878452825291829020825180840190935280548352600101546001600160a01b0316908201819052610f55576000935050611042565b80602001516001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b158015610f9257600080fd5b505afa158015610fa6573d6000803e3d6000fd5b505050506040513d6020811015610fbc57600080fd5b505181516040805163277166bf60e11b81526001600160a01b038a81166004830152602482019390935290519190921691634ee2cd7e916044808301926020929190829003018186803b15801561101257600080fd5b505afa158015611026573d6000803e3d6000fd5b505050506040513d602081101561103c57600080fd5b50519350505b505092915050565b3360009081526020818152604080832085845290915281206001015483906001600160a01b03166110b7576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b3360009081526020818152604080832087845290915290206001908101546001600160a01b0316906110e7611d39565b506001600160a01b0382811660009081526001602081815260408084208b855282529283902083516080810185528154958616808252600160a01b90960460ff1615159281019290925291820154928101929092526002015460608201529061114f57600080fd5b6001600160a01b03831660008181526001602081815260408084208c855290915280832080546001600160a81b03191681559182018390556002909101829055518992917f6bc0cb9e9967b59a69ace442598e1df4368d38661bd5c0800fbcbc9fe855fbbe91a38560011415611381576000836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156111fa57600080fd5b505afa15801561120e573d6000803e3d6000fd5b505050506040513d602081101561122457600080fd5b50516020830151909150156112f15781516040808401518151633914de9d60e21b81526001600160a01b0393841660048201526024810191909152868316604482015290519183169163e4537a74916064808201926020929091908290030181600087803b15801561129557600080fd5b505af11580156112a9573d6000803e3d6000fd5b505050506040513d60208110156112bf57600080fd5b505160608301516001600160a01b03808716600090815260026020908152604080832088519094168352929052205592505b816020015161137f578151604080516327a95adf60e11b81526001600160a01b0392831660048201528683166024820152905191831691634f52b5be916044808201926020929091908290030181600087803b15801561135057600080fd5b505af1158015611364573d6000803e3d6000fd5b505050506040513d602081101561137a57600080fd5b505192505b505b60408051878152905188916001600160a01b038616917fd2632e80f5364f02aded1c64e8a04637b7c8bb9c2db2bedf4b6ac47c013acbc09181900360200190a35095945050505050565b600260209081526000928352604080842090915290825290205481565b336000908152602081815260408083208484528252808320600101548151638da5cb5b60e01b8152915185936001600160a01b03909216928392638da5cb5b92600480840193829003018186803b15801561144257600080fd5b505afa158015611456573d6000803e3d6000fd5b505050506040513d602081101561146c57600080fd5b505160408051639be2faed60e01b81523060048201526001600160a01b03848116602483015291519190921691639be2faed916044808301926020929190829003018186803b1580156114be57600080fd5b505afa1580156114d2573d6000803e3d6000fd5b505050506040513d60208110156114e857600080fd5b5051611536576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b61153e611d22565b5033600090815260208181526040808320878452825291829020825180840190935280548352600101546001600160a01b0316908201819052611585576000935050611669565b80602001516001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b1580156115c257600080fd5b505afa1580156115d6573d6000803e3d6000fd5b505050506040513d60208110156115ec57600080fd5b5051815160408051630981b24d60e41b81526004810192909252516001600160a01b039092169163981b24d091602480820192602092909190829003018186803b15801561163957600080fd5b505afa15801561164d573d6000803e3d6000fd5b505050506040513d602081101561166357600080fd5b50519350505b5050919050565b3360009081526020818152604080832084845290915281206001015482906001600160a01b03166116dd576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b336000908152602081815260408083208684529091529020600101546001600160a01b031680611711576000925050611809565b806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561174a57600080fd5b505afa15801561175e573d6000803e3d6000fd5b505050506040513d602081101561177457600080fd5b50516040805163b9a04cdd60e01b81526001600160a01b038a8116600483015289811660248301526044820189905284811660648301529151919092169163b9a04cdd9160848083019260209291908290030181600087803b1580156117d957600080fd5b505af11580156117ed573d6000803e3d6000fd5b505050506040513d602081101561180357600080fd5b50519250505b50949350505050565b3360009081526020818152604080832084845290915281206001015482906001600160a01b031661187f576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b336000908152602081815260408083208684529091529020600101546001600160a01b0316806118b35760009250506119a3565b806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118ec57600080fd5b505afa158015611900573d6000803e3d6000fd5b505050506040513d602081101561191657600080fd5b50516040805163757cca5960e11b8152600481018990526001600160a01b03888116602483015284811660448301529151919092169163eaf994b29160648083019260209291908290030181600087803b15801561197357600080fd5b505af1158015611987573d6000803e3d6000fd5b505050506040513d602081101561199d57600080fd5b50519250505b509392505050565b3360009081526020818152604080832084845290915281206001015482906001600160a01b0316611a18576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b336000908152602081815260408083208684529091529020600101546001600160a01b031680611a4c5760009250506119a3565b806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a8557600080fd5b505afa158015611a99573d6000803e3d6000fd5b505050506040513d6020811015611aaf57600080fd5b505160408051630dd29a4f60e31b8152600481018990526001600160a01b038881166024830152848116604483015291519190921691636e94d2789160648083019260209291908290030181600087803b15801561197357600080fd5b6000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611b4757600080fd5b505afa158015611b5b573d6000803e3d6000fd5b505050506040513d6020811015611b7157600080fd5b505160408051639be2faed60e01b81523060048201526001600160a01b03858116602483015291519190921691639be2faed916044808301926020929190829003018186803b158015611bc357600080fd5b505afa158015611bd7573d6000803e3d6000fd5b505050506040513d6020811015611bed57600080fd5b5051611c3b576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c7457600080fd5b505afa158015611c88573d6000803e3d6000fd5b505050506040513d6020811015611c9e57600080fd5b505160408051630389aac160e31b81523060048201526001600160a01b03858116602483015291519190921691631c4d5608916044808301926020929190829003018186803b158015611cf057600080fd5b505afa158015611d04573d6000803e3d6000fd5b505050506040513d6020811015611d1a57600080fd5b505192915050565b604080518082019091526000808252602082015290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fea265627a7a72315820d0ce8e562286141a92a54a66589c74b61d61bce61e8071c6e8e31dec745355f764736f6c63430005110032",
  "linkReferences": {},
  "deployedLinkReferences": {}
}