{
  "_format": "hh-sol-artifact-1",
  "contractName": "JoeMakerV3",
  "sourceName": "contracts/JoeMakerV3.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_factory",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_bar",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_joe",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_wavax",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "bridge",
          "type": "address"
        }
      ],
      "name": "LogBridgeSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "server",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "token0",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "token1",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount0",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount1",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amountJOE",
          "type": "uint256"
        }
      ],
      "name": "LogConvert",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "_addr",
          "type": "address"
        }
      ],
      "name": "SetDevAddr",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "SetDevCut",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_auth",
          "type": "address"
        }
      ],
      "name": "addAuth",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "anyAuth",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "authorized",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "bar",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "bridgeFor",
      "outputs": [
        {
          "internalType": "address",
          "name": "bridge",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token0",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "token1",
          "type": "address"
        }
      ],
      "name": "convert",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "token0",
          "type": "address[]"
        },
        {
          "internalType": "address[]",
          "name": "token1",
          "type": "address[]"
        }
      ],
      "name": "convertMultiple",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "devAddr",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "devCut",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "factory",
      "outputs": [
        {
          "internalType": "contract IJoeFactory",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "isAuth",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_auth",
          "type": "address"
        }
      ],
      "name": "revokeAuth",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "access",
          "type": "bool"
        }
      ],
      "name": "setAnyAuth",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "bridge",
          "type": "address"
        }
      ],
      "name": "setBridge",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_addr",
          "type": "address"
        }
      ],
      "name": "setDevAddr",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "setDevCut",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x61010060405260006001556005805460ff1916905534801561002057600080fd5b506040516122673803806122678339818101604052608081101561004357600080fd5b50805160208201516040830151606090930151919290916000610064610148565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160601b0319606094851b811660805292841b831660a05290831b821660c05290911b1660e052600280546001600160a01b0319908116339081179092556000828152600360205260408120805460ff191660019081179091556004805491820181559091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054909116909117905561014c565b3390565b60805160601c60a05160601c60c05160601c60e05160601c61206c6101fb600039806108f05280610a0e528061151e528061155b5280611700528061173d5280611766528061179352806117d052806117f95250806108b3528061148852806114cd52806115bb5280611600528061166452806116a9528061197c525080610da752806114ef528061162252806116cb528061199e525080610afb5280610e6752806119c3525061206c6000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80639c286837116100ad578063da09c72c11610071578063da09c72c14610384578063dbcc106d1461038c578063f2fde38b146103a9578063f8171dfa146103cf578063febb0f7e146103f557610121565b80639c286837146102e05780639d22ae8c146102fa578063a761a93914610328578063bd1b820c1461034e578063c45a01551461037c57610121565b8063313a3a98116100f4578063313a3a98146102655780635422224e146102845780636ebb64a2146102aa578063715018a6146102d05780638da5cb5b146102d857610121565b80630d48669a146101265780631d01548e1461015f5780632520e7ff1461017b578063303e6aa4146101a1575b600080fd5b6101436004803603602081101561013c57600080fd5b50356103fd565b604080516001600160a01b039092168252519081900360200190f35b610167610424565b604080519115158252519081900360200190f35b6101676004803603602081101561019157600080fd5b50356001600160a01b031661042d565b610263600480360360408110156101b757600080fd5b8101906020810181356401000000008111156101d257600080fd5b8201836020820111156101e457600080fd5b8035906020019184602083028401116401000000008311171561020657600080fd5b91939092909160208101903564010000000081111561022457600080fd5b82018360208201111561023657600080fd5b8035906020019184602083028401116401000000008311171561025857600080fd5b509092509050610442565b005b6102636004803603602081101561027b57600080fd5b50351515610556565b6102636004803603602081101561029a57600080fd5b50356001600160a01b03166105cb565b610263600480360360208110156102c057600080fd5b50356001600160a01b0316610693565b61026361078e565b61014361083a565b6102e8610849565b60408051918252519081900360200190f35b6102636004803603604081101561031057600080fd5b506001600160a01b038135811691602001351661084f565b6101436004803603602081101561033e57600080fd5b50356001600160a01b03166109eb565b6102636004803603604081101561036457600080fd5b506001600160a01b0381358116916020013516610a33565b610143610af9565b610143610b1d565b610263600480360360208110156103a257600080fd5b5035610b2c565b610263600480360360208110156103bf57600080fd5b50356001600160a01b0316610c20565b610263600480360360208110156103e557600080fd5b50356001600160a01b0316610d22565b610143610da5565b6004818154811061040a57fe5b6000918252602090912001546001600160a01b0316905081565b60055460ff1681565b60036020526000908152604090205460ff1681565b333214610491576040805162461bcd60e51b81526020600482015260186024820152774a6f654d616b657256333a206d7573742075736520454f4160401b604482015290519081900360640190fd5b3360009081526003602052604090205460ff16806104b1575060055460ff165b6104fa576040805162461bcd60e51b81526020600482015260156024820152742537b2a6b0b5b2b92b199d102327a92124a22222a760591b604482015290519081900360640190fd5b8260005b8181101561054e5761054686868381811061051557fe5b905060200201356001600160a01b031685858481811061053157fe5b905060200201356001600160a01b0316610dc9565b6001016104fe565b505050505050565b61055e61129a565b6001600160a01b031661056f61083a565b6001600160a01b0316146105b8576040805162461bcd60e51b81526020600482018190526024820152600080516020611fed833981519152604482015290519081900360640190fd5b6005805460ff1916911515919091179055565b6105d361129a565b6001600160a01b03166105e461083a565b6001600160a01b03161461062d576040805162461bcd60e51b81526020600482018190526024820152600080516020611fed833981519152604482015290519081900360640190fd5b6001600160a01b03166000818152600360205260408120805460ff191660019081179091556004805491820181559091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319169091179055565b61069b61129a565b6001600160a01b03166106ac61083a565b6001600160a01b0316146106f5576040805162461bcd60e51b81526020600482018190526024820152600080516020611fed833981519152604482015290519081900360640190fd5b6001600160a01b03811661073a5760405162461bcd60e51b815260040180806020018281038252602a81526020018061200d602a913960400191505060405180910390fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f45c73fc162405abe4471c4228f0797176ac32cb9f7be4a25a67cbd1dda6d007e9181900360200190a150565b61079661129a565b6001600160a01b03166107a761083a565b6001600160a01b0316146107f0576040805162461bcd60e51b81526020600482018190526024820152600080516020611fed833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b60015481565b61085761129a565b6001600160a01b031661086861083a565b6001600160a01b0316146108b1576040805162461bcd60e51b81526020600482018190526024820152600080516020611fed833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161415801561092557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b80156109435750806001600160a01b0316826001600160a01b031614155b610994576040805162461bcd60e51b815260206004820152601a60248201527f4a6f654d616b657256333a20496e76616c696420627269646765000000000000604482015290519081900360640190fd5b6001600160a01b0382811660008181526006602052604080822080546001600160a01b0319169486169485179055517f2e103aa707acc565f9a1547341914802b2bfe977fd79c595209f248ae4b006139190a35050565b6001600160a01b038082166000908152600660205260409020541680610a2e57507f00000000000000000000000000000000000000000000000000000000000000005b919050565b333214610a82576040805162461bcd60e51b81526020600482015260186024820152774a6f654d616b657256333a206d7573742075736520454f4160401b604482015290519081900360640190fd5b3360009081526003602052604090205460ff1680610aa2575060055460ff165b610aeb576040805162461bcd60e51b81526020600482015260156024820152742537b2a6b0b5b2b92b199d102327a92124a22222a760591b604482015290519081900360640190fd5b610af58282610dc9565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6002546001600160a01b031681565b610b3461129a565b6001600160a01b0316610b4561083a565b6001600160a01b031614610b8e576040805162461bcd60e51b81526020600482018190526024820152600080516020611fed833981519152604482015290519081900360640190fd5b611388811115610be5576040805162461bcd60e51b815260206004820152601760248201527f7365744465764375743a2063757420746f6f2068696768000000000000000000604482015290519081900360640190fd5b60018190556040805182815290517f914990c75916d406c148e7fca9308486d7806a77c0ef66119c9329add5885d2e9181900360200190a150565b610c2861129a565b6001600160a01b0316610c3961083a565b6001600160a01b031614610c82576040805162461bcd60e51b81526020600482018190526024820152600080516020611fed833981519152604482015290519081900360640190fd5b6001600160a01b038116610cc75760405162461bcd60e51b8152600401808060200182810382526026815260200180611f806026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b610d2a61129a565b6001600160a01b0316610d3b61083a565b6001600160a01b031614610d84576040805162461bcd60e51b81526020600482018190526024820152600080516020611fed833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600360205260409020805460ff19169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080826001600160a01b0316846001600160a01b03161415610e6357604080516370a0823160e01b815230600482015290516001600160a01b038616916370a08231916024808301926020929190829003018186803b158015610e2c57600080fd5b505afa158015610e40573d6000803e3d6000fd5b505050506040513d6020811015610e5657600080fd5b5051915060009050611239565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e6a4390586866040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b158015610ee357600080fd5b505afa158015610ef7573d6000803e3d6000fd5b505050506040513d6020811015610f0d57600080fd5b505190506001600160a01b038116610f6c576040805162461bcd60e51b815260206004820152601860248201527f4a6f654d616b657256333a20496e76616c696420706169720000000000000000604482015290519081900360640190fd5b610ffa81826001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610fbd57600080fd5b505afa158015610fd1573d6000803e3d6000fd5b505050506040513d6020811015610fe757600080fd5b50516001600160a01b038416919061129e565b6000856001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561104957600080fd5b505afa15801561105d573d6000803e3d6000fd5b505050506040513d602081101561107357600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038816916370a08231916024808301926020929190829003018186803b1580156110c157600080fd5b505afa1580156110d5573d6000803e3d6000fd5b505050506040513d60208110156110eb57600080fd5b50516040805163226bf2d160e21b815230600482015281519293506001600160a01b038616926389afcb44926024808401939192918290030181600087803b15801561113657600080fd5b505af115801561114a573d6000803e3d6000fd5b505050506040513d604081101561116057600080fd5b5050604080516370a0823160e01b815230600482015290516111e09184916001600160a01b038b16916370a08231916024808301926020929190829003018186803b1580156111ae57600080fd5b505afa1580156111c2573d6000803e3d6000fd5b505050506040513d60208110156111d857600080fd5b505190611408565b945061123381876001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156111ae57600080fd5b93505050505b6001600160a01b03808416908516337fd06b1d7ed79b664d17472c6f6997b929f1abe463ccccb4e5b6a0038f2f730c1585856112778a8a848461145c565b60408051938452602084019290925282820152519081900360600190a450505050565b3390565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b6020831061131b5780518252601f1990920191602091820191016112fc565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461137d576040519150601f19603f3d011682016040523d82523d6000602084013e611382565b606091505b50915091508180156113b05750805115806113b057508080602001905160208110156113ad57600080fd5b50515b611401576040805162461bcd60e51b815260206004820152601a60248201527f5361666545524332303a205472616e73666572206661696c6564000000000000604482015290519081900360640190fd5b5050505050565b80820382811115611456576040805162461bcd60e51b8152602060048201526013602482015272536166654d6174683a20556e646572666c6f7760681b604482015290519081900360640190fd5b92915050565b6000836001600160a01b0316856001600160a01b031614156115b957600061148484846118cd565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b0316141561151c576115146001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f00000000000000000000000000000000000000000000000000000000000000008361129e565b8091506115b3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b03161415611587576115807f00000000000000000000000000000000000000000000000000000000000000008261191e565b91506115b3565b6000611592876109eb565b90506115a0878284306119be565b91506115af818284600061145c565b9250505b506118c5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b03161415611662576116476001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f00000000000000000000000000000000000000000000000000000000000000008561129e565b61165b83611655868561191e565b906118cd565b90506118c5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614156116fe576116f06001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f00000000000000000000000000000000000000000000000000000000000000008461129e565b61165b82611655878661191e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614156117915761165b7f000000000000000000000000000000000000000000000000000000000000000061178c85611655887f000000000000000000000000000000000000000000000000000000000000000088306119be565b61191e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316141561181f5761165b7f000000000000000000000000000000000000000000000000000000000000000061178c84611655897f000000000000000000000000000000000000000000000000000000000000000089306119be565b600061182a866109eb565b90506000611837866109eb565b9050856001600160a01b0316826001600160a01b031614156118715761186a82876118648a868a306119be565b8761145c565b92506118c2565b866001600160a01b0316816001600160a01b031614156118a25761186a87828761189d8a868a306119be565b61145c565b6118bf82826118b38a868a306119be565b61189d8a868a306119be565b92505b50505b949350505050565b81810181811015611456576040805162461bcd60e51b8152602060048201526016602482015275536166654d6174683a20416464204f766572666c6f7760501b604482015290519081900360640190fd5b6001546000908290156119765761194c61271061194660015484611de990919063ffffffff16565b90611e4e565b600254909150611969906001600160a01b0386811691168361129e565b6119738382611408565b90505b6118c5847f0000000000000000000000000000000000000000000000000000000000000000837f00000000000000000000000000000000000000000000000000000000000000005b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e6a4390587876040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b158015611a3f57600080fd5b505afa158015611a53573d6000803e3d6000fd5b505050506040513d6020811015611a6957600080fd5b505190506001600160a01b038116611ac8576040805162461bcd60e51b815260206004820152601a60248201527f4a6f654d616b657256333a2043616e6e6f7420636f6e76657274000000000000604482015290519081900360640190fd5b600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611b0457600080fd5b505afa158015611b18573d6000803e3d6000fd5b505050506040513d6060811015611b2e57600080fd5b50805160209182015160408051630dfe168160e01b815290516dffffffffffffffffffffffffffff938416965092909116935060009283926001600160a01b03881692630dfe1681926004808301939192829003018186803b158015611b9357600080fd5b505afa158015611ba7573d6000803e3d6000fd5b505050506040513d6020811015611bbd57600080fd5b50516001600160a01b038b8116911614611bd8578284611bdb565b83835b9092509050611bf46001600160a01b038b16868a61129e565b6000611c47838c6001600160a01b03166370a08231896040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156111ae57600080fd5b9050611c54818484611ead565b9650600080876001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015611c9257600080fd5b505afa158015611ca6573d6000803e3d6000fd5b505050506040513d6020811015611cbc57600080fd5b50516001600160a01b038e8116911614611cd857886000611cdc565b6000895b604080516000808252602082019092529294509092506001600160a01b038a169163022c0d9f91859185918f9190506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611d72578181015183820152602001611d5a565b50505050905090810190601f168015611d9f5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015611dc157600080fd5b505af1158015611dd5573d6000803e3d6000fd5b505050505050505050505050949350505050565b6000811580611e0457505080820282828281611e0157fe5b04145b611456576040805162461bcd60e51b8152602060048201526016602482015275536166654d6174683a204d756c204f766572666c6f7760501b604482015290519081900360640190fd5b6000808211611e9c576040805162461bcd60e51b8152602060048201526015602482015274536166654d6174683a20446976206279205a65726f60581b604482015290519081900360640190fd5b818381611ea557fe5b049392505050565b6000808411611eed5760405162461bcd60e51b8152600401808060200182810382526025815260200180611fc86025913960400191505060405180910390fd5b600083118015611efd5750600082115b611f385760405162461bcd60e51b8152600401808060200182810382526022815260200180611fa66022913960400191505060405180910390fd5b6000611f46856103e5611de9565b90506000611f548285611de9565b90506000611f6883611655886103e8611de9565b9050808281611f7357fe5b0497965050505050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734a6f654d616b657256333a20494e53554646494349454e545f4c49515549444954594a6f654d616b657256333a20494e53554646494349454e545f494e5055545f414d4f554e544f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572736574446576416464722c20616464726573732063616e6e6f74206265207a65726f2061646472657373a26469706673582212207487b8aea12d58908e63be45a483135b97c2e938b1e8578ea2fddef60096cb1664736f6c634300060c0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101215760003560e01c80639c286837116100ad578063da09c72c11610071578063da09c72c14610384578063dbcc106d1461038c578063f2fde38b146103a9578063f8171dfa146103cf578063febb0f7e146103f557610121565b80639c286837146102e05780639d22ae8c146102fa578063a761a93914610328578063bd1b820c1461034e578063c45a01551461037c57610121565b8063313a3a98116100f4578063313a3a98146102655780635422224e146102845780636ebb64a2146102aa578063715018a6146102d05780638da5cb5b146102d857610121565b80630d48669a146101265780631d01548e1461015f5780632520e7ff1461017b578063303e6aa4146101a1575b600080fd5b6101436004803603602081101561013c57600080fd5b50356103fd565b604080516001600160a01b039092168252519081900360200190f35b610167610424565b604080519115158252519081900360200190f35b6101676004803603602081101561019157600080fd5b50356001600160a01b031661042d565b610263600480360360408110156101b757600080fd5b8101906020810181356401000000008111156101d257600080fd5b8201836020820111156101e457600080fd5b8035906020019184602083028401116401000000008311171561020657600080fd5b91939092909160208101903564010000000081111561022457600080fd5b82018360208201111561023657600080fd5b8035906020019184602083028401116401000000008311171561025857600080fd5b509092509050610442565b005b6102636004803603602081101561027b57600080fd5b50351515610556565b6102636004803603602081101561029a57600080fd5b50356001600160a01b03166105cb565b610263600480360360208110156102c057600080fd5b50356001600160a01b0316610693565b61026361078e565b61014361083a565b6102e8610849565b60408051918252519081900360200190f35b6102636004803603604081101561031057600080fd5b506001600160a01b038135811691602001351661084f565b6101436004803603602081101561033e57600080fd5b50356001600160a01b03166109eb565b6102636004803603604081101561036457600080fd5b506001600160a01b0381358116916020013516610a33565b610143610af9565b610143610b1d565b610263600480360360208110156103a257600080fd5b5035610b2c565b610263600480360360208110156103bf57600080fd5b50356001600160a01b0316610c20565b610263600480360360208110156103e557600080fd5b50356001600160a01b0316610d22565b610143610da5565b6004818154811061040a57fe5b6000918252602090912001546001600160a01b0316905081565b60055460ff1681565b60036020526000908152604090205460ff1681565b333214610491576040805162461bcd60e51b81526020600482015260186024820152774a6f654d616b657256333a206d7573742075736520454f4160401b604482015290519081900360640190fd5b3360009081526003602052604090205460ff16806104b1575060055460ff165b6104fa576040805162461bcd60e51b81526020600482015260156024820152742537b2a6b0b5b2b92b199d102327a92124a22222a760591b604482015290519081900360640190fd5b8260005b8181101561054e5761054686868381811061051557fe5b905060200201356001600160a01b031685858481811061053157fe5b905060200201356001600160a01b0316610dc9565b6001016104fe565b505050505050565b61055e61129a565b6001600160a01b031661056f61083a565b6001600160a01b0316146105b8576040805162461bcd60e51b81526020600482018190526024820152600080516020611fed833981519152604482015290519081900360640190fd5b6005805460ff1916911515919091179055565b6105d361129a565b6001600160a01b03166105e461083a565b6001600160a01b03161461062d576040805162461bcd60e51b81526020600482018190526024820152600080516020611fed833981519152604482015290519081900360640190fd5b6001600160a01b03166000818152600360205260408120805460ff191660019081179091556004805491820181559091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319169091179055565b61069b61129a565b6001600160a01b03166106ac61083a565b6001600160a01b0316146106f5576040805162461bcd60e51b81526020600482018190526024820152600080516020611fed833981519152604482015290519081900360640190fd5b6001600160a01b03811661073a5760405162461bcd60e51b815260040180806020018281038252602a81526020018061200d602a913960400191505060405180910390fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f45c73fc162405abe4471c4228f0797176ac32cb9f7be4a25a67cbd1dda6d007e9181900360200190a150565b61079661129a565b6001600160a01b03166107a761083a565b6001600160a01b0316146107f0576040805162461bcd60e51b81526020600482018190526024820152600080516020611fed833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b60015481565b61085761129a565b6001600160a01b031661086861083a565b6001600160a01b0316146108b1576040805162461bcd60e51b81526020600482018190526024820152600080516020611fed833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161415801561092557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b80156109435750806001600160a01b0316826001600160a01b031614155b610994576040805162461bcd60e51b815260206004820152601a60248201527f4a6f654d616b657256333a20496e76616c696420627269646765000000000000604482015290519081900360640190fd5b6001600160a01b0382811660008181526006602052604080822080546001600160a01b0319169486169485179055517f2e103aa707acc565f9a1547341914802b2bfe977fd79c595209f248ae4b006139190a35050565b6001600160a01b038082166000908152600660205260409020541680610a2e57507f00000000000000000000000000000000000000000000000000000000000000005b919050565b333214610a82576040805162461bcd60e51b81526020600482015260186024820152774a6f654d616b657256333a206d7573742075736520454f4160401b604482015290519081900360640190fd5b3360009081526003602052604090205460ff1680610aa2575060055460ff165b610aeb576040805162461bcd60e51b81526020600482015260156024820152742537b2a6b0b5b2b92b199d102327a92124a22222a760591b604482015290519081900360640190fd5b610af58282610dc9565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6002546001600160a01b031681565b610b3461129a565b6001600160a01b0316610b4561083a565b6001600160a01b031614610b8e576040805162461bcd60e51b81526020600482018190526024820152600080516020611fed833981519152604482015290519081900360640190fd5b611388811115610be5576040805162461bcd60e51b815260206004820152601760248201527f7365744465764375743a2063757420746f6f2068696768000000000000000000604482015290519081900360640190fd5b60018190556040805182815290517f914990c75916d406c148e7fca9308486d7806a77c0ef66119c9329add5885d2e9181900360200190a150565b610c2861129a565b6001600160a01b0316610c3961083a565b6001600160a01b031614610c82576040805162461bcd60e51b81526020600482018190526024820152600080516020611fed833981519152604482015290519081900360640190fd5b6001600160a01b038116610cc75760405162461bcd60e51b8152600401808060200182810382526026815260200180611f806026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b610d2a61129a565b6001600160a01b0316610d3b61083a565b6001600160a01b031614610d84576040805162461bcd60e51b81526020600482018190526024820152600080516020611fed833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600360205260409020805460ff19169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080826001600160a01b0316846001600160a01b03161415610e6357604080516370a0823160e01b815230600482015290516001600160a01b038616916370a08231916024808301926020929190829003018186803b158015610e2c57600080fd5b505afa158015610e40573d6000803e3d6000fd5b505050506040513d6020811015610e5657600080fd5b5051915060009050611239565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e6a4390586866040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b158015610ee357600080fd5b505afa158015610ef7573d6000803e3d6000fd5b505050506040513d6020811015610f0d57600080fd5b505190506001600160a01b038116610f6c576040805162461bcd60e51b815260206004820152601860248201527f4a6f654d616b657256333a20496e76616c696420706169720000000000000000604482015290519081900360640190fd5b610ffa81826001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610fbd57600080fd5b505afa158015610fd1573d6000803e3d6000fd5b505050506040513d6020811015610fe757600080fd5b50516001600160a01b038416919061129e565b6000856001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561104957600080fd5b505afa15801561105d573d6000803e3d6000fd5b505050506040513d602081101561107357600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038816916370a08231916024808301926020929190829003018186803b1580156110c157600080fd5b505afa1580156110d5573d6000803e3d6000fd5b505050506040513d60208110156110eb57600080fd5b50516040805163226bf2d160e21b815230600482015281519293506001600160a01b038616926389afcb44926024808401939192918290030181600087803b15801561113657600080fd5b505af115801561114a573d6000803e3d6000fd5b505050506040513d604081101561116057600080fd5b5050604080516370a0823160e01b815230600482015290516111e09184916001600160a01b038b16916370a08231916024808301926020929190829003018186803b1580156111ae57600080fd5b505afa1580156111c2573d6000803e3d6000fd5b505050506040513d60208110156111d857600080fd5b505190611408565b945061123381876001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156111ae57600080fd5b93505050505b6001600160a01b03808416908516337fd06b1d7ed79b664d17472c6f6997b929f1abe463ccccb4e5b6a0038f2f730c1585856112778a8a848461145c565b60408051938452602084019290925282820152519081900360600190a450505050565b3390565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b6020831061131b5780518252601f1990920191602091820191016112fc565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461137d576040519150601f19603f3d011682016040523d82523d6000602084013e611382565b606091505b50915091508180156113b05750805115806113b057508080602001905160208110156113ad57600080fd5b50515b611401576040805162461bcd60e51b815260206004820152601a60248201527f5361666545524332303a205472616e73666572206661696c6564000000000000604482015290519081900360640190fd5b5050505050565b80820382811115611456576040805162461bcd60e51b8152602060048201526013602482015272536166654d6174683a20556e646572666c6f7760681b604482015290519081900360640190fd5b92915050565b6000836001600160a01b0316856001600160a01b031614156115b957600061148484846118cd565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b0316141561151c576115146001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f00000000000000000000000000000000000000000000000000000000000000008361129e565b8091506115b3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b03161415611587576115807f00000000000000000000000000000000000000000000000000000000000000008261191e565b91506115b3565b6000611592876109eb565b90506115a0878284306119be565b91506115af818284600061145c565b9250505b506118c5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b03161415611662576116476001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f00000000000000000000000000000000000000000000000000000000000000008561129e565b61165b83611655868561191e565b906118cd565b90506118c5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614156116fe576116f06001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f00000000000000000000000000000000000000000000000000000000000000008461129e565b61165b82611655878661191e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614156117915761165b7f000000000000000000000000000000000000000000000000000000000000000061178c85611655887f000000000000000000000000000000000000000000000000000000000000000088306119be565b61191e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316141561181f5761165b7f000000000000000000000000000000000000000000000000000000000000000061178c84611655897f000000000000000000000000000000000000000000000000000000000000000089306119be565b600061182a866109eb565b90506000611837866109eb565b9050856001600160a01b0316826001600160a01b031614156118715761186a82876118648a868a306119be565b8761145c565b92506118c2565b866001600160a01b0316816001600160a01b031614156118a25761186a87828761189d8a868a306119be565b61145c565b6118bf82826118b38a868a306119be565b61189d8a868a306119be565b92505b50505b949350505050565b81810181811015611456576040805162461bcd60e51b8152602060048201526016602482015275536166654d6174683a20416464204f766572666c6f7760501b604482015290519081900360640190fd5b6001546000908290156119765761194c61271061194660015484611de990919063ffffffff16565b90611e4e565b600254909150611969906001600160a01b0386811691168361129e565b6119738382611408565b90505b6118c5847f0000000000000000000000000000000000000000000000000000000000000000837f00000000000000000000000000000000000000000000000000000000000000005b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e6a4390587876040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b158015611a3f57600080fd5b505afa158015611a53573d6000803e3d6000fd5b505050506040513d6020811015611a6957600080fd5b505190506001600160a01b038116611ac8576040805162461bcd60e51b815260206004820152601a60248201527f4a6f654d616b657256333a2043616e6e6f7420636f6e76657274000000000000604482015290519081900360640190fd5b600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611b0457600080fd5b505afa158015611b18573d6000803e3d6000fd5b505050506040513d6060811015611b2e57600080fd5b50805160209182015160408051630dfe168160e01b815290516dffffffffffffffffffffffffffff938416965092909116935060009283926001600160a01b03881692630dfe1681926004808301939192829003018186803b158015611b9357600080fd5b505afa158015611ba7573d6000803e3d6000fd5b505050506040513d6020811015611bbd57600080fd5b50516001600160a01b038b8116911614611bd8578284611bdb565b83835b9092509050611bf46001600160a01b038b16868a61129e565b6000611c47838c6001600160a01b03166370a08231896040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156111ae57600080fd5b9050611c54818484611ead565b9650600080876001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015611c9257600080fd5b505afa158015611ca6573d6000803e3d6000fd5b505050506040513d6020811015611cbc57600080fd5b50516001600160a01b038e8116911614611cd857886000611cdc565b6000895b604080516000808252602082019092529294509092506001600160a01b038a169163022c0d9f91859185918f9190506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611d72578181015183820152602001611d5a565b50505050905090810190601f168015611d9f5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015611dc157600080fd5b505af1158015611dd5573d6000803e3d6000fd5b505050505050505050505050949350505050565b6000811580611e0457505080820282828281611e0157fe5b04145b611456576040805162461bcd60e51b8152602060048201526016602482015275536166654d6174683a204d756c204f766572666c6f7760501b604482015290519081900360640190fd5b6000808211611e9c576040805162461bcd60e51b8152602060048201526015602482015274536166654d6174683a20446976206279205a65726f60581b604482015290519081900360640190fd5b818381611ea557fe5b049392505050565b6000808411611eed5760405162461bcd60e51b8152600401808060200182810382526025815260200180611fc86025913960400191505060405180910390fd5b600083118015611efd5750600082115b611f385760405162461bcd60e51b8152600401808060200182810382526022815260200180611fa66022913960400191505060405180910390fd5b6000611f46856103e5611de9565b90506000611f548285611de9565b90506000611f6883611655886103e8611de9565b9050808281611f7357fe5b0497965050505050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734a6f654d616b657256333a20494e53554646494349454e545f4c49515549444954594a6f654d616b657256333a20494e53554646494349454e545f494e5055545f414d4f554e544f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572736574446576416464722c20616464726573732063616e6e6f74206265207a65726f2061646472657373a26469706673582212207487b8aea12d58908e63be45a483135b97c2e938b1e8578ea2fddef60096cb1664736f6c634300060c0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
