{
  "_format": "hh-sol-artifact-1",
  "contractName": "ExtractorBudget",
  "sourceName": "contracts/ExtractorBudget.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "previousAdmin",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "newAdmin",
          "type": "address"
        }
      ],
      "name": "AdminChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "beacon",
          "type": "address"
        }
      ],
      "name": "BeaconUpgraded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "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": true,
          "internalType": "address",
          "name": "implementation",
          "type": "address"
        }
      ],
      "name": "Upgraded",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "animaToken",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "erc721Budget",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "animaAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "levicaAmount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "tokenReceiverAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "publisherAddress",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_purchaseBudgetManager",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_shardToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_animaToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_mintFetcherRole",
          "type": "address"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "mintFetcherRole",
      "outputs": [
        {
          "internalType": "contract IRoleManager",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "proxiableUUID",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "purchaseBudgetManager",
      "outputs": [
        {
          "internalType": "contract IPurchaseBudgetManager",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "animaAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "levicaAmount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "tokenReceiverAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "publisherAddress",
          "type": "address"
        }
      ],
      "name": "setBudget",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_addr",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "gainOrLose",
          "type": "bool"
        }
      ],
      "name": "setMintFetcher",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "shardToken",
      "outputs": [
        {
          "internalType": "contract IERC1155",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_animaToken",
          "type": "address"
        }
      ],
      "name": "updateAnimaToken",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_addr",
          "type": "address"
        }
      ],
      "name": "updateMintFetcherRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_purchaseBudgetManager",
          "type": "address"
        }
      ],
      "name": "updatePurchaseBudgetManager",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_shardToken",
          "type": "address"
        }
      ],
      "name": "updateShardToken",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newImplementation",
          "type": "address"
        }
      ],
      "name": "upgradeTo",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newImplementation",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "upgradeToAndCall",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "sendAdd",
          "type": "address"
        }
      ],
      "name": "withdrawAnima",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a060405230608052348015601357600080fd5b5060805161184b61004b60003960008181610984015281816109c401528181610ab701528181610af70152610b8a015261184b6000f3fe6080604052600436106101145760003560e01c806368e89ad8116100a0578063c1f5b28d11610064578063c1f5b28d146102e1578063deccf33614610301578063f2fde38b14610321578063f8c8765e14610341578063f8e3f41e1461036157600080fd5b806368e89ad81461024e578063715018a61461026e5780638a3784a6146102835780638da5cb5b146102a3578063b1adb4d5146102c157600080fd5b80633659cfe6116100e75780633659cfe6146101b85780633817d625146101d85780633bcd4180146101f85780634f1ef2861461021857806352d1902d1461022b57600080fd5b806303f6625814610119578063092e0f331461013b57806325ab433e1461015b578063354189f214610198575b600080fd5b34801561012557600080fd5b506101396101343660046113d6565b6103eb565b005b34801561014757600080fd5b506101396101563660046113f1565b610415565b34801561016757600080fd5b5060ca5461017b906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101a457600080fd5b506101396101b336600461141d565b61056d565b3480156101c457600080fd5b506101396101d33660046113d6565b61097a565b3480156101e457600080fd5b506101396101f33660046113d6565b610a59565b34801561020457600080fd5b506101396102133660046113d6565b610a83565b610139610226366004611483565b610aad565b34801561023757600080fd5b50610240610b7d565b60405190815260200161018f565b34801561025a57600080fd5b5061013961026936600461155b565b610c30565b34801561027a57600080fd5b50610139610ca3565b34801561028f57600080fd5b5060cb5461017b906001600160a01b031681565b3480156102af57600080fd5b506097546001600160a01b031661017b565b3480156102cd57600080fd5b506101396102dc3660046113d6565b610cb7565b3480156102ed57600080fd5b5060c95461017b906001600160a01b031681565b34801561030d57600080fd5b5060cd5461017b906001600160a01b031681565b34801561032d57600080fd5b5061013961033c3660046113d6565b610ce1565b34801561034d57600080fd5b5061013961035c366004611592565b610d57565b34801561036d57600080fd5b506103b761037c3660046115e6565b60cc60205260009081526040902080546001820154600283015460038401546004909401549293919290916001600160a01b03908116911685565b604080519586526020860194909452928401919091526001600160a01b03908116606084015216608082015260a00161018f565b6103f3610ebe565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b61041d610ebe565b60cb546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610466573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048a91906115ff565b9050828110156104f05760405162461bcd60e51b815260206004820152602660248201527f496e73756666696369656e7420746f6b656e2062616c616e636520696e20636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b60cb5460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018690529091169063a9059cbb906044016020604051808303816000875af1158015610543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105679190611618565b50505050565b60cd546040516335f206d960e21b81523360048201526001600160a01b039091169063d7c81b6490602401602060405180830381865afa1580156105b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d99190611618565b6040518060400160405280601981526020017f43616c6c6572206973206e6f74204d696e7446657463686572000000000000008152509061062d5760405162461bcd60e51b81526004016104e79190611660565b506001600160a01b0382166106905760405162461bcd60e51b8152602060048201526024808201527f496e76616c696420746f6b656e526563656976657241646472657373206164646044820152637265737360e01b60648201526084016104e7565b6040805160a08101825286815260208082018781528284018781526001600160a01b03878116606086019081528782166080870190815260008d815260cc90965287862096518755935160018701559151600286015590516003850180549183166001600160a01b0319928316179055915160049485018054918316919093161790915560c95493516320ed36c760e11b81523093810193909352909216906341da6d8e906024016020604051808303816000875af1158015610757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077b91906115ff565b60c95460405163b8ba16fd60e01b81523060048201529192506000916001600160a01b039091169063b8ba16fd906024016020604051808303816000875af11580156107cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ef91906115ff565b9050806107fc87846116a9565b11156108f55760008161080f88856116a9565b61081991906116bc565b60cb5460c95460405163095ea7b360e01b81526001600160a01b03918216600482015260248101849052929350169063095ea7b3906044016020604051808303816000875af1158015610870573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108949190611618565b5060c9546040516349c26fcb60e01b8152600481018390526001600160a01b03909116906349c26fcb90602401600060405180830381600087803b1580156108db57600080fd5b505af11580156108ef573d6000803e3d6000fd5b50505050505b60c954604051631aa0c4f960e11b81526004810189905260248101889052604481018790526001600160a01b03868116606483015285811660848301529091169063354189f29060a401600060405180830381600087803b15801561095957600080fd5b505af115801561096d573d6000803e3d6000fd5b5050505050505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109c25760405162461bcd60e51b81526004016104e7906116cf565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a0b6000805160206117cf833981519152546001600160a01b031690565b6001600160a01b031614610a315760405162461bcd60e51b81526004016104e79061171b565b610a3a81610f18565b60408051600080825260208201909252610a5691839190610f20565b50565b610a61610ebe565b60c980546001600160a01b0319166001600160a01b0392909216919091179055565b610a8b610ebe565b60ca80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610af55760405162461bcd60e51b81526004016104e7906116cf565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b3e6000805160206117cf833981519152546001600160a01b031690565b6001600160a01b031614610b645760405162461bcd60e51b81526004016104e79061171b565b610b6d82610f18565b610b7982826001610f20565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c1d5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104e7565b506000805160206117cf83398151915290565b610c38610ebe565b60cd5460405163ab01b46960e01b81526001600160a01b03848116600483015283151560248301529091169063ab01b46990604401600060405180830381600087803b158015610c8757600080fd5b505af1158015610c9b573d6000803e3d6000fd5b505050505050565b610cab610ebe565b610cb56000611090565b565b610cbf610ebe565b60cd80546001600160a01b0319166001600160a01b0392909216919091179055565b610ce9610ebe565b6001600160a01b038116610d4e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e7565b610a5681611090565b600054610100900460ff1615808015610d775750600054600160ff909116105b80610d915750303b158015610d91575060005460ff166001145b610df45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104e7565b6000805460ff191660011790558015610e17576000805461ff0019166101001790555b610e1f6110e2565b610e27611109565b60c980546001600160a01b038088166001600160a01b03199283161790925560ca805487841690831617905560cb805486841690831617905560cd8054928516929091169190911790558015610eb7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6097546001600160a01b03163314610cb55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e7565b610a56610ebe565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610f5857610f5383611138565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610fb2575060408051601f3d908101601f19168201909252610faf918101906115ff565b60015b6110155760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104e7565b6000805160206117cf83398151915281146110845760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104e7565b50610f538383836111d4565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610cb55760405162461bcd60e51b81526004016104e790611767565b600054610100900460ff166111305760405162461bcd60e51b81526004016104e790611767565b610cb56111f9565b6001600160a01b0381163b6111a55760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104e7565b6000805160206117cf83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6111dd83611229565b6000825111806111ea5750805b15610f53576105678383611269565b600054610100900460ff166112205760405162461bcd60e51b81526004016104e790611767565b610cb533611090565b61123281611138565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061128e83836040518060600160405280602781526020016117ef60279139611297565b90505b92915050565b6060600080856001600160a01b0316856040516112b491906117b2565b600060405180830381855af49150503d80600081146112ef576040519150601f19603f3d011682016040523d82523d6000602084013e6112f4565b606091505b50915091506113058683838761130f565b9695505050505050565b6060831561137e578251600003611377576001600160a01b0385163b6113775760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104e7565b5081611388565b6113888383611390565b949350505050565b8151156113a05781518083602001fd5b8060405162461bcd60e51b81526004016104e79190611660565b80356001600160a01b03811681146113d157600080fd5b919050565b6000602082840312156113e857600080fd5b61128e826113ba565b6000806040838503121561140457600080fd5b82359150611414602084016113ba565b90509250929050565b600080600080600060a0868803121561143557600080fd5b853594506020860135935060408601359250611453606087016113ba565b9150611461608087016113ba565b90509295509295909350565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561149657600080fd5b61149f836113ba565b9150602083013567ffffffffffffffff8111156114bb57600080fd5b8301601f810185136114cc57600080fd5b803567ffffffffffffffff8111156114e6576114e661146d565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156115155761151561146d565b60405281815282820160200187101561152d57600080fd5b816020840160208301376000602083830101528093505050509250929050565b8015158114610a5657600080fd5b6000806040838503121561156e57600080fd5b611577836113ba565b915060208301356115878161154d565b809150509250929050565b600080600080608085870312156115a857600080fd5b6115b1856113ba565b93506115bf602086016113ba565b92506115cd604086016113ba565b91506115db606086016113ba565b905092959194509250565b6000602082840312156115f857600080fd5b5035919050565b60006020828403121561161157600080fd5b5051919050565b60006020828403121561162a57600080fd5b81516116358161154d565b9392505050565b60005b8381101561165757818101518382015260200161163f565b50506000910152565b602081526000825180602084015261167f81604085016020870161163c565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561129157611291611693565b8181038181111561129157611291611693565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082516117c481846020870161163c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206b61559079b28fd02ab1c353d4bf667bff469a3344ea0aa220430ef7beaf654864736f6c634300081b0033",
  "deployedBytecode": "0x6080604052600436106101145760003560e01c806368e89ad8116100a0578063c1f5b28d11610064578063c1f5b28d146102e1578063deccf33614610301578063f2fde38b14610321578063f8c8765e14610341578063f8e3f41e1461036157600080fd5b806368e89ad81461024e578063715018a61461026e5780638a3784a6146102835780638da5cb5b146102a3578063b1adb4d5146102c157600080fd5b80633659cfe6116100e75780633659cfe6146101b85780633817d625146101d85780633bcd4180146101f85780634f1ef2861461021857806352d1902d1461022b57600080fd5b806303f6625814610119578063092e0f331461013b57806325ab433e1461015b578063354189f214610198575b600080fd5b34801561012557600080fd5b506101396101343660046113d6565b6103eb565b005b34801561014757600080fd5b506101396101563660046113f1565b610415565b34801561016757600080fd5b5060ca5461017b906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101a457600080fd5b506101396101b336600461141d565b61056d565b3480156101c457600080fd5b506101396101d33660046113d6565b61097a565b3480156101e457600080fd5b506101396101f33660046113d6565b610a59565b34801561020457600080fd5b506101396102133660046113d6565b610a83565b610139610226366004611483565b610aad565b34801561023757600080fd5b50610240610b7d565b60405190815260200161018f565b34801561025a57600080fd5b5061013961026936600461155b565b610c30565b34801561027a57600080fd5b50610139610ca3565b34801561028f57600080fd5b5060cb5461017b906001600160a01b031681565b3480156102af57600080fd5b506097546001600160a01b031661017b565b3480156102cd57600080fd5b506101396102dc3660046113d6565b610cb7565b3480156102ed57600080fd5b5060c95461017b906001600160a01b031681565b34801561030d57600080fd5b5060cd5461017b906001600160a01b031681565b34801561032d57600080fd5b5061013961033c3660046113d6565b610ce1565b34801561034d57600080fd5b5061013961035c366004611592565b610d57565b34801561036d57600080fd5b506103b761037c3660046115e6565b60cc60205260009081526040902080546001820154600283015460038401546004909401549293919290916001600160a01b03908116911685565b604080519586526020860194909452928401919091526001600160a01b03908116606084015216608082015260a00161018f565b6103f3610ebe565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b61041d610ebe565b60cb546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610466573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048a91906115ff565b9050828110156104f05760405162461bcd60e51b815260206004820152602660248201527f496e73756666696369656e7420746f6b656e2062616c616e636520696e20636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b60cb5460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018690529091169063a9059cbb906044016020604051808303816000875af1158015610543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105679190611618565b50505050565b60cd546040516335f206d960e21b81523360048201526001600160a01b039091169063d7c81b6490602401602060405180830381865afa1580156105b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d99190611618565b6040518060400160405280601981526020017f43616c6c6572206973206e6f74204d696e7446657463686572000000000000008152509061062d5760405162461bcd60e51b81526004016104e79190611660565b506001600160a01b0382166106905760405162461bcd60e51b8152602060048201526024808201527f496e76616c696420746f6b656e526563656976657241646472657373206164646044820152637265737360e01b60648201526084016104e7565b6040805160a08101825286815260208082018781528284018781526001600160a01b03878116606086019081528782166080870190815260008d815260cc90965287862096518755935160018701559151600286015590516003850180549183166001600160a01b0319928316179055915160049485018054918316919093161790915560c95493516320ed36c760e11b81523093810193909352909216906341da6d8e906024016020604051808303816000875af1158015610757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077b91906115ff565b60c95460405163b8ba16fd60e01b81523060048201529192506000916001600160a01b039091169063b8ba16fd906024016020604051808303816000875af11580156107cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ef91906115ff565b9050806107fc87846116a9565b11156108f55760008161080f88856116a9565b61081991906116bc565b60cb5460c95460405163095ea7b360e01b81526001600160a01b03918216600482015260248101849052929350169063095ea7b3906044016020604051808303816000875af1158015610870573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108949190611618565b5060c9546040516349c26fcb60e01b8152600481018390526001600160a01b03909116906349c26fcb90602401600060405180830381600087803b1580156108db57600080fd5b505af11580156108ef573d6000803e3d6000fd5b50505050505b60c954604051631aa0c4f960e11b81526004810189905260248101889052604481018790526001600160a01b03868116606483015285811660848301529091169063354189f29060a401600060405180830381600087803b15801561095957600080fd5b505af115801561096d573d6000803e3d6000fd5b5050505050505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109c25760405162461bcd60e51b81526004016104e7906116cf565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a0b6000805160206117cf833981519152546001600160a01b031690565b6001600160a01b031614610a315760405162461bcd60e51b81526004016104e79061171b565b610a3a81610f18565b60408051600080825260208201909252610a5691839190610f20565b50565b610a61610ebe565b60c980546001600160a01b0319166001600160a01b0392909216919091179055565b610a8b610ebe565b60ca80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610af55760405162461bcd60e51b81526004016104e7906116cf565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b3e6000805160206117cf833981519152546001600160a01b031690565b6001600160a01b031614610b645760405162461bcd60e51b81526004016104e79061171b565b610b6d82610f18565b610b7982826001610f20565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c1d5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104e7565b506000805160206117cf83398151915290565b610c38610ebe565b60cd5460405163ab01b46960e01b81526001600160a01b03848116600483015283151560248301529091169063ab01b46990604401600060405180830381600087803b158015610c8757600080fd5b505af1158015610c9b573d6000803e3d6000fd5b505050505050565b610cab610ebe565b610cb56000611090565b565b610cbf610ebe565b60cd80546001600160a01b0319166001600160a01b0392909216919091179055565b610ce9610ebe565b6001600160a01b038116610d4e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e7565b610a5681611090565b600054610100900460ff1615808015610d775750600054600160ff909116105b80610d915750303b158015610d91575060005460ff166001145b610df45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104e7565b6000805460ff191660011790558015610e17576000805461ff0019166101001790555b610e1f6110e2565b610e27611109565b60c980546001600160a01b038088166001600160a01b03199283161790925560ca805487841690831617905560cb805486841690831617905560cd8054928516929091169190911790558015610eb7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6097546001600160a01b03163314610cb55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e7565b610a56610ebe565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610f5857610f5383611138565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610fb2575060408051601f3d908101601f19168201909252610faf918101906115ff565b60015b6110155760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104e7565b6000805160206117cf83398151915281146110845760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104e7565b50610f538383836111d4565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610cb55760405162461bcd60e51b81526004016104e790611767565b600054610100900460ff166111305760405162461bcd60e51b81526004016104e790611767565b610cb56111f9565b6001600160a01b0381163b6111a55760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104e7565b6000805160206117cf83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6111dd83611229565b6000825111806111ea5750805b15610f53576105678383611269565b600054610100900460ff166112205760405162461bcd60e51b81526004016104e790611767565b610cb533611090565b61123281611138565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061128e83836040518060600160405280602781526020016117ef60279139611297565b90505b92915050565b6060600080856001600160a01b0316856040516112b491906117b2565b600060405180830381855af49150503d80600081146112ef576040519150601f19603f3d011682016040523d82523d6000602084013e6112f4565b606091505b50915091506113058683838761130f565b9695505050505050565b6060831561137e578251600003611377576001600160a01b0385163b6113775760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104e7565b5081611388565b6113888383611390565b949350505050565b8151156113a05781518083602001fd5b8060405162461bcd60e51b81526004016104e79190611660565b80356001600160a01b03811681146113d157600080fd5b919050565b6000602082840312156113e857600080fd5b61128e826113ba565b6000806040838503121561140457600080fd5b82359150611414602084016113ba565b90509250929050565b600080600080600060a0868803121561143557600080fd5b853594506020860135935060408601359250611453606087016113ba565b9150611461608087016113ba565b90509295509295909350565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561149657600080fd5b61149f836113ba565b9150602083013567ffffffffffffffff8111156114bb57600080fd5b8301601f810185136114cc57600080fd5b803567ffffffffffffffff8111156114e6576114e661146d565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156115155761151561146d565b60405281815282820160200187101561152d57600080fd5b816020840160208301376000602083830101528093505050509250929050565b8015158114610a5657600080fd5b6000806040838503121561156e57600080fd5b611577836113ba565b915060208301356115878161154d565b809150509250929050565b600080600080608085870312156115a857600080fd5b6115b1856113ba565b93506115bf602086016113ba565b92506115cd604086016113ba565b91506115db606086016113ba565b905092959194509250565b6000602082840312156115f857600080fd5b5035919050565b60006020828403121561161157600080fd5b5051919050565b60006020828403121561162a57600080fd5b81516116358161154d565b9392505050565b60005b8381101561165757818101518382015260200161163f565b50506000910152565b602081526000825180602084015261167f81604085016020870161163c565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561129157611291611693565b8181038181111561129157611291611693565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082516117c481846020870161163c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206b61559079b28fd02ab1c353d4bf667bff469a3344ea0aa220430ef7beaf654864736f6c634300081b0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
