{
  "_format": "hh-sol-artifact-1",
  "contractName": "NFTAirdropsAndSales",
  "sourceName": "contracts/NFTAirdropsAndSales.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_nftContract",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_levx",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_wallet",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "slug",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "signer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "deadline",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "fromTokenId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "maxTokenId",
          "type": "uint256"
        }
      ],
      "name": "Add",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "slug",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "price",
          "type": "uint256"
        }
      ],
      "name": "Claim",
      "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": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bool",
          "name": "isMinter",
          "type": "bool"
        }
      ],
      "name": "SetMinter",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "slug",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "signer",
          "type": "address"
        },
        {
          "internalType": "uint64",
          "name": "deadline",
          "type": "uint64"
        },
        {
          "internalType": "uint256",
          "name": "fromTokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "maxTokenId",
          "type": "uint256"
        }
      ],
      "name": "add",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "airdrops",
      "outputs": [
        {
          "internalType": "address",
          "name": "signer",
          "type": "address"
        },
        {
          "internalType": "uint64",
          "name": "deadline",
          "type": "uint64"
        },
        {
          "internalType": "uint256",
          "name": "nextTokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "maxTokenId",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "slug",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "price",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "v",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "r",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "s",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "claim",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "isMinter",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "levx",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "mint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "mintBatch",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "nftContract",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "toTokenId",
          "type": "uint256"
        }
      ],
      "name": "parkTokenIds",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "baseURI",
          "type": "string"
        }
      ],
      "name": "setBaseURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "_isMinter",
          "type": "bool"
        }
      ],
      "name": "setMinter",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "_royaltyFee",
          "type": "uint8"
        }
      ],
      "name": "setRoyaltyFee",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_royaltyFeeRecipient",
          "type": "address"
        }
      ],
      "name": "setRoyaltyFeeRecipient",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "setTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnershipOfNFTContract",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "wallet",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60e06040523480156200001157600080fd5b5060405162001e3e38038062001e3e8339810160408190526200003491620000d4565b6200003f3362000067565b6001600160601b0319606093841b811660805291831b821660a05290911b1660c0526200011d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620000cf57600080fd5b919050565b600080600060608486031215620000e9578283fd5b620000f484620000b7565b92506200010460208501620000b7565b91506200011460408501620000b7565b90509250925092565b60805160601c60a05160601c60c05160601c611c94620001aa600039600081816101530152610bd40152600081816101bd0152610bb101526000818161028f015281816103b10152818161049b01528181610552015281816105fe0152818161067e01528181610760015281816109e101528181610c1001528181610cca0152610dd50152611c946000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806394d008ef116100ad578063d56d229d11610071578063d56d229d1461028a578063ddb5fa6a146102b1578063eace9ea5146102c4578063ee583c69146102d7578063f2fde38b1461035457610121565b806394d008ef1461020b578063aa271e1a1461021e578063c58c260514610251578063c975e37414610264578063cf456ae71461027757610121565b80635f7ef2fa116100f45780635f7ef2fa146101a557806362df3472146101b85780636ef8e02d146101df578063715018a6146101f25780638da5cb5b146101fa57610121565b8063162094c414610126578063228624821461013b578063521eb2731461014e57806355f804b314610192575b600080fd5b6101396101343660046119e4565b610367565b005b61013961014936600461173a565b61041e565b6101757f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101396101a03660046119aa565b610511565b6101396101b3366004611a28565b6105bc565b6101757f000000000000000000000000000000000000000000000000000000000000000081565b6101396101ed366004611702565b610635565b6101396106ad565b6000546001600160a01b0316610175565b61013961021936600461181f565b6106e3565b61024161022c366004611702565b60026020526000908152604090205460ff1681565b6040519015158152602001610189565b61013961025f366004611908565b6107d3565b610139610272366004611894565b610c8a565b6101396102853660046117e7565b610d01565b6101757f000000000000000000000000000000000000000000000000000000000000000081565b6101396102bf366004611702565b610d8c565b6101396102d23660046118ac565b610e04565b6103226102e5366004611894565b60016020819052600091825260409091208054918101546002909101546001600160a01b03831692600160a01b90046001600160401b0316919084565b604080516001600160a01b0390951685526001600160401b039093166020850152918301526060820152608001610189565b610139610362366004611702565b610f14565b6000546001600160a01b0316331461039a5760405162461bcd60e51b815260040161039190611b62565b60405180910390fd5b604051630588253160e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063162094c4906103e89085908590600401611b97565b600060405180830381600087803b15801561040257600080fd5b505af1158015610416573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633148061044657503360009081526002602052604090205460ff165b6104845760405162461bcd60e51b815260206004820152600f60248201526e2622ab2c1d102327a92124a22222a760891b6044820152606401610391565b604051631143124160e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906322862482906104d89088908890889088908890600401611ab4565b600060405180830381600087803b1580156104f257600080fd5b505af1158015610506573d6000803e3d6000fd5b505050505050505050565b6000546001600160a01b0316331461053b5760405162461bcd60e51b815260040161039190611b62565b6040516355f804b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906355f804b390610587908490600401611b4f565b600060405180830381600087803b1580156105a157600080fd5b505af11580156105b5573d6000803e3d6000fd5b5050505050565b6000546001600160a01b031633146105e65760405162461bcd60e51b815260040161039190611b62565b604051632fbf797d60e11b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635f7ef2fa90602401610587565b6000546001600160a01b0316331461065f5760405162461bcd60e51b815260040161039190611b62565b604051636ef8e02d60e01b81526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636ef8e02d90602401610587565b6000546001600160a01b031633146106d75760405162461bcd60e51b815260040161039190611b62565b6106e16000610faf565b565b6000546001600160a01b031633148061070b57503360009081526002602052604090205460ff165b6107495760405162461bcd60e51b815260206004820152600f60248201526e2622ab2c1d102327a92124a22222a760891b6044820152606401610391565b6040516394d008ef60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906394d008ef9061079b908790879087908790600401611b1d565b600060405180830381600087803b1580156107b557600080fd5b505af11580156107c9573d6000803e3d6000fd5b5050505050505050565b60008a815260016020526040902080546001600160a01b03811690600160a01b90046001600160401b0316816108405760405162461bcd60e51b81526020600482015260126024820152714c4556583a20494e56414c49445f534c554760701b6044820152606401610391565b6001600160401b03811615806108675750806001600160401b0316426001600160401b0316105b6108a35760405162461bcd60e51b815260206004820152600d60248201526c131155960e8811561412549151609a1b6044820152606401610391565b60008d81526003602090815260408083208f845290915290205460ff16156108fc5760405162461bcd60e51b815260206004820152600c60248201526b131155960e8813525395115160a21b6044820152606401610391565b60408051602081018f90529081018d9052606081018c9052608081018b905260009060a001604051602081830303815290604052805190602001209050826001600160a01b031661095761094f83610fff565b8c8c8c611053565b6001600160a01b0316146109a25760405162461bcd60e51b8152602060048201526012602482015271131155960e8815539055551213d49256915160721b6044820152606401610391565b505050600181015460028201548a610ade57819a505b808b1015610a81576040516331a9108f60e11b8152600481018c90526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e9060240160206040518083038186803b158015610a2357600080fd5b505afa158015610a37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5b919061171e565b6001600160a01b03161415610a6f57610a81565b8a610a7981611bf4565b9b50506109b8565b808b10610ac95760405162461bcd60e51b8152602060048201526016602482015275131155960e881253959053125117d513d2d15397d25160521b6044820152606401610391565b610ad48b6001611bb0565b6001840155610b32565b818b10158015610aed5750808b105b610b325760405162461bcd60e51b8152602060048201526016602482015275131155960e881253959053125117d513d2d15397d25160521b6044820152606401610391565b505060008b81526003602090815260408083208d8452825291829020805460ff1916600117905581518b81529081018a90526001600160a01b038616918c918e917f505ffa200839819281c641fe8125ca13f7be51481a0ec16363c150157ac85692910160405180910390a48715610bf957610bf96001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016337f00000000000000000000000000000000000000000000000000000000000000008b61107b565b6040516394d008ef60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906394d008ef90610c4b9087908d9088908890600401611b1d565b600060405180830381600087803b158015610c6557600080fd5b505af1158015610c79573d6000803e3d6000fd5b505050505050505050505050505050565b6000546001600160a01b03163314610cb45760405162461bcd60e51b815260040161039190611b62565b60405163325d78dd60e21b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c975e37490602401610587565b6000546001600160a01b03163314610d2b5760405162461bcd60e51b815260040161039190611b62565b6001600160a01b038216600081815260026020908152604091829020805460ff1916851515908117909155915192835290917f1f96bc657d385fd83da973a43f2ad969e6d96b6779b779571a7306db7ca1cd00910160405180910390a25050565b6000546001600160a01b03163314610db65760405162461bcd60e51b815260040161039190611b62565b60405163f2fde38b60e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b90602401610587565b6000546001600160a01b03163314610e2e5760405162461bcd60e51b815260040161039190611b62565b600085815260016020526040902080546001600160a01b031615610e825760405162461bcd60e51b815260206004820152600b60248201526a131155960e88105111115160aa1b6044820152606401610391565b80546001600160a01b0386166001600160e01b03199091168117600160a01b6001600160401b038716908102919091178355600183018590556002830184905560408051928352602083019190915281018490526060810183905286907f466d87c3193987331bbb2ed81a7632a53c430f2394bc692e2a314c4d0dd79fbd9060800160405180910390a2505050505050565b6000546001600160a01b03163314610f3e5760405162461bcd60e51b815260040161039190611b62565b6001600160a01b038116610fa35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610391565b610fac81610faf565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c016040516020818303038152906040528051906020012090505b919050565b6000806000611064878787876110db565b91509150611071816111c8565b5095945050505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526110d59085906113cb565b50505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561111257506000905060036111bf565b8460ff16601b1415801561112a57508460ff16601c14155b1561113b57506000905060046111bf565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561118f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166111b8576000600192509250506111bf565b9150600090505b94509492505050565b60008160048111156111ea57634e487b7160e01b600052602160045260246000fd5b14156111f557610fac565b600181600481111561121757634e487b7160e01b600052602160045260246000fd5b14156112655760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610391565b600281600481111561128757634e487b7160e01b600052602160045260246000fd5b14156112d55760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610391565b60038160048111156112f757634e487b7160e01b600052602160045260246000fd5b14156113505760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610391565b600481600481111561137257634e487b7160e01b600052602160045260246000fd5b1415610fac5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610391565b6000611420826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166114a29092919063ffffffff16565b80519091501561149d578080602001905181019061143e9190611878565b61149d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610391565b505050565b60606114b184846000856114bb565b90505b9392505050565b60608247101561151c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610391565b6001600160a01b0385163b6115735760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610391565b600080866001600160a01b0316858760405161158f9190611a98565b60006040518083038185875af1925050503d80600081146115cc576040519150601f19603f3d011682016040523d82523d6000602084013e6115d1565b606091505b50915091506115e18282866115ec565b979650505050505050565b606083156115fb5750816114b4565b82511561160b5782518084602001fd5b8160405162461bcd60e51b81526004016103919190611b4f565b60008083601f840112611636578182fd5b5081356001600160401b0381111561164c578182fd5b60208301915083602082850101111561166457600080fd5b9250929050565b600082601f83011261167b578081fd5b81356001600160401b038082111561169557611695611c25565b604051601f8301601f19908116603f011681019082821181831017156116bd576116bd611c25565b816040528381528660208588010111156116d5578485fd5b8360208701602083013792830160200193909352509392505050565b803560ff8116811461104e57600080fd5b600060208284031215611713578081fd5b81356114b481611c3b565b60006020828403121561172f578081fd5b81516114b481611c3b565b600080600080600060608688031215611751578081fd5b853561175c81611c3b565b945060208601356001600160401b0380821115611777578283fd5b818801915088601f83011261178a578283fd5b813581811115611798578384fd5b8960208260051b85010111156117ac578384fd5b6020830196508095505060408801359150808211156117c9578283fd5b506117d688828901611625565b969995985093965092949392505050565b600080604083850312156117f9578182fd5b823561180481611c3b565b9150602083013561181481611c50565b809150509250929050565b60008060008060608587031215611834578384fd5b843561183f81611c3b565b93506020850135925060408501356001600160401b03811115611860578283fd5b61186c87828801611625565b95989497509550505050565b600060208284031215611889578081fd5b81516114b481611c50565b6000602082840312156118a5578081fd5b5035919050565b600080600080600060a086880312156118c3578081fd5b8535945060208601356118d581611c3b565b935060408601356001600160401b03811681146118f0578182fd5b94979396509394606081013594506080013592915050565b6000806000806000806000806000806101208b8d031215611927578485fd5b8a35995060208b0135985060408b0135975060608b0135965061194c60808c016116f1565b955060a08b0135945060c08b0135935060e08b013561196a81611c3b565b92506101008b01356001600160401b03811115611985578283fd5b6119918d828e01611625565b915080935050809150509295989b9194979a5092959850565b6000602082840312156119bb578081fd5b81356001600160401b038111156119d0578182fd5b6119dc8482850161166b565b949350505050565b600080604083850312156119f6578182fd5b8235915060208301356001600160401b03811115611a12578182fd5b611a1e8582860161166b565b9150509250929050565b600060208284031215611a39578081fd5b6114b4826116f1565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452611a84816020860160208601611bc8565b601f01601f19169290920160200192915050565b60008251611aaa818460208701611bc8565b9190910192915050565b6001600160a01b0386168152606060208201819052810184905260006001600160fb1b03851115611ae3578081fd5b8460051b808760808501378083019050608081018281526080848303016040850152611b10818688611a42565b9998505050505050505050565b600060018060a01b038616825284602083015260606040830152611b45606083018486611a42565b9695505050505050565b6000602082526114b46020830184611a6c565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000838252604060208301526114b16040830184611a6c565b60008219821115611bc357611bc3611c0f565b500190565b60005b83811015611be3578181015183820152602001611bcb565b838111156110d55750506000910152565b6000600019821415611c0857611c08611c0f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610fac57600080fd5b8015158114610fac57600080fdfea264697066735822122018d7dcccadad69b418ead9901ed77dad038556ff6747e5a2dd3b5db19a6d249064736f6c63430008030033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101215760003560e01c806394d008ef116100ad578063d56d229d11610071578063d56d229d1461028a578063ddb5fa6a146102b1578063eace9ea5146102c4578063ee583c69146102d7578063f2fde38b1461035457610121565b806394d008ef1461020b578063aa271e1a1461021e578063c58c260514610251578063c975e37414610264578063cf456ae71461027757610121565b80635f7ef2fa116100f45780635f7ef2fa146101a557806362df3472146101b85780636ef8e02d146101df578063715018a6146101f25780638da5cb5b146101fa57610121565b8063162094c414610126578063228624821461013b578063521eb2731461014e57806355f804b314610192575b600080fd5b6101396101343660046119e4565b610367565b005b61013961014936600461173a565b61041e565b6101757f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101396101a03660046119aa565b610511565b6101396101b3366004611a28565b6105bc565b6101757f000000000000000000000000000000000000000000000000000000000000000081565b6101396101ed366004611702565b610635565b6101396106ad565b6000546001600160a01b0316610175565b61013961021936600461181f565b6106e3565b61024161022c366004611702565b60026020526000908152604090205460ff1681565b6040519015158152602001610189565b61013961025f366004611908565b6107d3565b610139610272366004611894565b610c8a565b6101396102853660046117e7565b610d01565b6101757f000000000000000000000000000000000000000000000000000000000000000081565b6101396102bf366004611702565b610d8c565b6101396102d23660046118ac565b610e04565b6103226102e5366004611894565b60016020819052600091825260409091208054918101546002909101546001600160a01b03831692600160a01b90046001600160401b0316919084565b604080516001600160a01b0390951685526001600160401b039093166020850152918301526060820152608001610189565b610139610362366004611702565b610f14565b6000546001600160a01b0316331461039a5760405162461bcd60e51b815260040161039190611b62565b60405180910390fd5b604051630588253160e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063162094c4906103e89085908590600401611b97565b600060405180830381600087803b15801561040257600080fd5b505af1158015610416573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633148061044657503360009081526002602052604090205460ff165b6104845760405162461bcd60e51b815260206004820152600f60248201526e2622ab2c1d102327a92124a22222a760891b6044820152606401610391565b604051631143124160e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906322862482906104d89088908890889088908890600401611ab4565b600060405180830381600087803b1580156104f257600080fd5b505af1158015610506573d6000803e3d6000fd5b505050505050505050565b6000546001600160a01b0316331461053b5760405162461bcd60e51b815260040161039190611b62565b6040516355f804b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906355f804b390610587908490600401611b4f565b600060405180830381600087803b1580156105a157600080fd5b505af11580156105b5573d6000803e3d6000fd5b5050505050565b6000546001600160a01b031633146105e65760405162461bcd60e51b815260040161039190611b62565b604051632fbf797d60e11b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635f7ef2fa90602401610587565b6000546001600160a01b0316331461065f5760405162461bcd60e51b815260040161039190611b62565b604051636ef8e02d60e01b81526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636ef8e02d90602401610587565b6000546001600160a01b031633146106d75760405162461bcd60e51b815260040161039190611b62565b6106e16000610faf565b565b6000546001600160a01b031633148061070b57503360009081526002602052604090205460ff165b6107495760405162461bcd60e51b815260206004820152600f60248201526e2622ab2c1d102327a92124a22222a760891b6044820152606401610391565b6040516394d008ef60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906394d008ef9061079b908790879087908790600401611b1d565b600060405180830381600087803b1580156107b557600080fd5b505af11580156107c9573d6000803e3d6000fd5b5050505050505050565b60008a815260016020526040902080546001600160a01b03811690600160a01b90046001600160401b0316816108405760405162461bcd60e51b81526020600482015260126024820152714c4556583a20494e56414c49445f534c554760701b6044820152606401610391565b6001600160401b03811615806108675750806001600160401b0316426001600160401b0316105b6108a35760405162461bcd60e51b815260206004820152600d60248201526c131155960e8811561412549151609a1b6044820152606401610391565b60008d81526003602090815260408083208f845290915290205460ff16156108fc5760405162461bcd60e51b815260206004820152600c60248201526b131155960e8813525395115160a21b6044820152606401610391565b60408051602081018f90529081018d9052606081018c9052608081018b905260009060a001604051602081830303815290604052805190602001209050826001600160a01b031661095761094f83610fff565b8c8c8c611053565b6001600160a01b0316146109a25760405162461bcd60e51b8152602060048201526012602482015271131155960e8815539055551213d49256915160721b6044820152606401610391565b505050600181015460028201548a610ade57819a505b808b1015610a81576040516331a9108f60e11b8152600481018c90526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e9060240160206040518083038186803b158015610a2357600080fd5b505afa158015610a37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5b919061171e565b6001600160a01b03161415610a6f57610a81565b8a610a7981611bf4565b9b50506109b8565b808b10610ac95760405162461bcd60e51b8152602060048201526016602482015275131155960e881253959053125117d513d2d15397d25160521b6044820152606401610391565b610ad48b6001611bb0565b6001840155610b32565b818b10158015610aed5750808b105b610b325760405162461bcd60e51b8152602060048201526016602482015275131155960e881253959053125117d513d2d15397d25160521b6044820152606401610391565b505060008b81526003602090815260408083208d8452825291829020805460ff1916600117905581518b81529081018a90526001600160a01b038616918c918e917f505ffa200839819281c641fe8125ca13f7be51481a0ec16363c150157ac85692910160405180910390a48715610bf957610bf96001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016337f00000000000000000000000000000000000000000000000000000000000000008b61107b565b6040516394d008ef60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906394d008ef90610c4b9087908d9088908890600401611b1d565b600060405180830381600087803b158015610c6557600080fd5b505af1158015610c79573d6000803e3d6000fd5b505050505050505050505050505050565b6000546001600160a01b03163314610cb45760405162461bcd60e51b815260040161039190611b62565b60405163325d78dd60e21b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c975e37490602401610587565b6000546001600160a01b03163314610d2b5760405162461bcd60e51b815260040161039190611b62565b6001600160a01b038216600081815260026020908152604091829020805460ff1916851515908117909155915192835290917f1f96bc657d385fd83da973a43f2ad969e6d96b6779b779571a7306db7ca1cd00910160405180910390a25050565b6000546001600160a01b03163314610db65760405162461bcd60e51b815260040161039190611b62565b60405163f2fde38b60e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b90602401610587565b6000546001600160a01b03163314610e2e5760405162461bcd60e51b815260040161039190611b62565b600085815260016020526040902080546001600160a01b031615610e825760405162461bcd60e51b815260206004820152600b60248201526a131155960e88105111115160aa1b6044820152606401610391565b80546001600160a01b0386166001600160e01b03199091168117600160a01b6001600160401b038716908102919091178355600183018590556002830184905560408051928352602083019190915281018490526060810183905286907f466d87c3193987331bbb2ed81a7632a53c430f2394bc692e2a314c4d0dd79fbd9060800160405180910390a2505050505050565b6000546001600160a01b03163314610f3e5760405162461bcd60e51b815260040161039190611b62565b6001600160a01b038116610fa35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610391565b610fac81610faf565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c016040516020818303038152906040528051906020012090505b919050565b6000806000611064878787876110db565b91509150611071816111c8565b5095945050505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526110d59085906113cb565b50505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561111257506000905060036111bf565b8460ff16601b1415801561112a57508460ff16601c14155b1561113b57506000905060046111bf565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561118f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166111b8576000600192509250506111bf565b9150600090505b94509492505050565b60008160048111156111ea57634e487b7160e01b600052602160045260246000fd5b14156111f557610fac565b600181600481111561121757634e487b7160e01b600052602160045260246000fd5b14156112655760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610391565b600281600481111561128757634e487b7160e01b600052602160045260246000fd5b14156112d55760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610391565b60038160048111156112f757634e487b7160e01b600052602160045260246000fd5b14156113505760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610391565b600481600481111561137257634e487b7160e01b600052602160045260246000fd5b1415610fac5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610391565b6000611420826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166114a29092919063ffffffff16565b80519091501561149d578080602001905181019061143e9190611878565b61149d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610391565b505050565b60606114b184846000856114bb565b90505b9392505050565b60608247101561151c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610391565b6001600160a01b0385163b6115735760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610391565b600080866001600160a01b0316858760405161158f9190611a98565b60006040518083038185875af1925050503d80600081146115cc576040519150601f19603f3d011682016040523d82523d6000602084013e6115d1565b606091505b50915091506115e18282866115ec565b979650505050505050565b606083156115fb5750816114b4565b82511561160b5782518084602001fd5b8160405162461bcd60e51b81526004016103919190611b4f565b60008083601f840112611636578182fd5b5081356001600160401b0381111561164c578182fd5b60208301915083602082850101111561166457600080fd5b9250929050565b600082601f83011261167b578081fd5b81356001600160401b038082111561169557611695611c25565b604051601f8301601f19908116603f011681019082821181831017156116bd576116bd611c25565b816040528381528660208588010111156116d5578485fd5b8360208701602083013792830160200193909352509392505050565b803560ff8116811461104e57600080fd5b600060208284031215611713578081fd5b81356114b481611c3b565b60006020828403121561172f578081fd5b81516114b481611c3b565b600080600080600060608688031215611751578081fd5b853561175c81611c3b565b945060208601356001600160401b0380821115611777578283fd5b818801915088601f83011261178a578283fd5b813581811115611798578384fd5b8960208260051b85010111156117ac578384fd5b6020830196508095505060408801359150808211156117c9578283fd5b506117d688828901611625565b969995985093965092949392505050565b600080604083850312156117f9578182fd5b823561180481611c3b565b9150602083013561181481611c50565b809150509250929050565b60008060008060608587031215611834578384fd5b843561183f81611c3b565b93506020850135925060408501356001600160401b03811115611860578283fd5b61186c87828801611625565b95989497509550505050565b600060208284031215611889578081fd5b81516114b481611c50565b6000602082840312156118a5578081fd5b5035919050565b600080600080600060a086880312156118c3578081fd5b8535945060208601356118d581611c3b565b935060408601356001600160401b03811681146118f0578182fd5b94979396509394606081013594506080013592915050565b6000806000806000806000806000806101208b8d031215611927578485fd5b8a35995060208b0135985060408b0135975060608b0135965061194c60808c016116f1565b955060a08b0135945060c08b0135935060e08b013561196a81611c3b565b92506101008b01356001600160401b03811115611985578283fd5b6119918d828e01611625565b915080935050809150509295989b9194979a5092959850565b6000602082840312156119bb578081fd5b81356001600160401b038111156119d0578182fd5b6119dc8482850161166b565b949350505050565b600080604083850312156119f6578182fd5b8235915060208301356001600160401b03811115611a12578182fd5b611a1e8582860161166b565b9150509250929050565b600060208284031215611a39578081fd5b6114b4826116f1565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452611a84816020860160208601611bc8565b601f01601f19169290920160200192915050565b60008251611aaa818460208701611bc8565b9190910192915050565b6001600160a01b0386168152606060208201819052810184905260006001600160fb1b03851115611ae3578081fd5b8460051b808760808501378083019050608081018281526080848303016040850152611b10818688611a42565b9998505050505050505050565b600060018060a01b038616825284602083015260606040830152611b45606083018486611a42565b9695505050505050565b6000602082526114b46020830184611a6c565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000838252604060208301526114b16040830184611a6c565b60008219821115611bc357611bc3611c0f565b500190565b60005b83811015611be3578181015183820152602001611bcb565b838111156110d55750506000910152565b6000600019821415611c0857611c08611c0f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610fac57600080fd5b8015158114610fac57600080fdfea264697066735822122018d7dcccadad69b418ead9901ed77dad038556ff6747e5a2dd3b5db19a6d249064736f6c63430008030033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
