{
  "contractName": "ERC1155PresetMinterPauser",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "ApprovalForAll",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Paused",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "previousAdminRole",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "newAdminRole",
          "type": "bytes32"
        }
      ],
      "name": "RoleAdminChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "RoleGranted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "RoleRevoked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "TransferBatch",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "TransferSingle",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "value",
          "type": "string"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "URI",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Unpaused",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "DEFAULT_ADMIN_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MINTER_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "PAUSER_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        }
      ],
      "name": "balanceOfBatch",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "burn",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "burnBatch",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "name": "getRoleAdmin",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "index",
          "type": "uint256"
        }
      ],
      "name": "getRoleMember",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "name": "getRoleMemberCount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "grantRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "hasRole",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "isApprovedForAll",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "renounceRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "revokeRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeBatchTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "setApprovalForAll",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "uri",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "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": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "mintBatch",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "unpause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MINTER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAUSER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"burnBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mintBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"{ERC1155} token, including:  - ability for holders to burn (destroy) their tokens  - a minter role that allows for token minting (creation)  - a pauser role that allows to stop all token transfers This contract uses {AccessControl} to lock permissioned functions using the different roles - head to its documentation for details. The account that deploys the contract will be granted the minter and pauser roles, as well as the default admin role, which will let it grant both minter and pauser roles to other accounts.\",\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"See {IERC1155-balanceOf}. Requirements: - `account` cannot be the zero address.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length.\"},\"constructor\":{\"details\":\"Grants `DEFAULT_ADMIN_ROLE`, `MINTER_ROLE`, and `PAUSER_ROLE` to the account that deploys the contract.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC1155-isApprovedForAll}.\"},\"mint(address,uint256,uint256,bytes)\":{\"details\":\"Creates `amount` new tokens for `to`, of token type `id`. See {ERC1155-_mint}. Requirements: - the caller must have the `MINTER_ROLE`.\"},\"mintBatch(address,uint256[],uint256[],bytes)\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] variant of {mint}.\"},\"pause()\":{\"details\":\"Pauses all token transfers. See {ERC1155Pausable} and {Pausable-_pause}. Requirements: - the caller must have the `PAUSER_ROLE`.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155-safeBatchTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC1155-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}. Time complexity O(1), guaranteed to always use less than 30 000 gas.\"},\"unpause()\":{\"details\":\"Unpauses all token transfers. See {ERC1155Pausable} and {Pausable-_unpause}. Requirements: - the caller must have the `PAUSER_ROLE`.\"},\"uri(uint256)\":{\"details\":\"See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. Clients calling this function must replace the `\\\\{id\\\\}` substring with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/presets/ERC1155PresetMinterPauser.sol\":\"ERC1155PresetMinterPauser\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x4fc155a2f7837603d69a13cfa481eb5e7f5e02cb77e2ec9edbac30986db37988\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0855147e38b5e36288a8df73b8da49132f14ec7abb19041b0c98872263643aaa\",\"dweb:/ipfs/QmSrSysyFUYQq7hbJaJXG7EyZW6ezDBzEJx3SABp6eiJSS\"]},\"@openzeppelin/contracts/introspection/ERC165.sol\":{\"keccak256\":\"0x24141d2f6b98d4cb77a8936eae8cbaad2e261d9062bdc08036096f4550092501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b710eb003944777135f027500a5a57b479fe857849f5f467c1ef9687401e3c95\",\"dweb:/ipfs/QmcELzi6KRzAs3DXwxdsoKWRJ13KSeipKQsJgD3unctdZM\"]},\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xf70bc25d981e4ec9673a995ad2995d5d493ea188d3d8f388bba9c227ce09fb82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd970f51e3a77790c2f02b5b1759827c3b897c3d98c407b3631e8af32e3dc93c\",\"dweb:/ipfs/QmPF85Amgbqjk3SNZKsPCsqCw8JfwYEPMnnhvMJUyX58je\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xcc78a17dd88fa5a2edc60c8489e2f405c0913b377216a5b26b35656b2d0dab52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://526dc85e1f9b9b45830e202568d267d93dde7a4fcccf4ad7798dadcd92304d3c\",\"dweb:/ipfs/QmaoXMB972J3cSDLtBq3xBo4jLwqD2uzXTwujtSPqkYVhR\"]},\"@openzeppelin/contracts/presets/ERC1155PresetMinterPauser.sol\":{\"keccak256\":\"0x79d54b5a31d16734efb0f8951be2c981e92c5ef80999bc8ad79b0f2b69fea91f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de8115cb549358e059328ea901ade257d2b6a5ed7b58b667c948b65c54593ecf\",\"dweb:/ipfs/QmPY5T994PemFwQ99Z1xH21ahRWKqy6NhkidgEGfUn4r9J\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0x3fef0eeb248c7109ce0f9adce59543d8b4141b78382d3ec34db33dabdbbc13f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f704e6539b9db8b7bf08b8a1c1cb2b44519129b5659211ed5af8f2aa5f264a2f\",\"dweb:/ipfs/QmYRPbn7p8oTEKNUrd7YMMA2J8W6vUeFmCcCMGvyWdZ6UB\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155Burnable.sol\":{\"keccak256\":\"0xa5e68c47511b26ea2f0e8ad00e6121e6ce135e9c3f969ff0819e59f0d1ceb1f6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c39be775bd739707cd4d1e026d6a8d60cd8876dd09547dc3ca9d9c672a03a429\",\"dweb:/ipfs/QmU3pp23qk3y6ByyWsoyeiQUW5X5rVnTQAafcsogfbZqta\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155Pausable.sol\":{\"keccak256\":\"0xaa7e99ee0555145c0a6ff8a6e8fdf4ed338c0a32bb14edfeb680bf70e0125e64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ccfe042c80623e56d4801e9c49c3b615334907dd767ec44be8623da0417b13\",\"dweb:/ipfs/QmWZVFpFjT42LTjAzf2UNR4sHAdsoxRhxvS1RkEKrVNmGn\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x61321d2c86346045bf394885ee3afeecc65f9daad2694bc19110967588fd7b5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1703b877203e0447ede72dcf73f1c4f2089b415bd1c44877904128a64fafed5b\",\"dweb:/ipfs/QmaZoYDo2FWtKcwCc9zuabU6zri8KV9xJrhU614d93sLid\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xd918cca1b659f588a6d12d05fd7196179a8b1eac9133d7f77da7ef3133e13256\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c75d578f42e2e2e427b934e6c41cc759be2d0a52155868308e915328c8feb2b\",\"dweb:/ipfs/QmbFNHtWAoNhe82Hy6yKTePWJRczqzp1APSBfLS9XfAN6e\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x2690a9b7f4f7489b8d25a4fc6bffc02ec3971fb41ed6c8b59adef2833bdab07c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8148c99452b6793ac9599abdc8bdaf4eeb47f34590beea8aa01089be14e2990c\",\"dweb:/ipfs/QmNdenmZ4EDfH9TuBas3pHeGuZvDNo2rsfgUj6ka8vuH37\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x28911e614500ae7c607a432a709d35da25f3bc5ddc8bd12b278b66358070c0ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://256c8c8af5eb072bc473226ab2b2187149b8fc04f5f4a4820db22527f5ce8e3c\",\"dweb:/ipfs/QmRvi5BhnL7Rxf85KrJhwM6RRhukm4tzoctRdgQEheNyiN\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f\",\"dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96\"]},\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0x1562cd9922fbf739edfb979f506809e2743789cbde3177515542161c3d04b164\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4580d57781513d98870d9738c7d39094336e0a70cdb90d68dad549c6ced466ec\",\"dweb:/ipfs/Qmf9YZzzRFuvMnav9dgmeRUpdYMMECiZX8w25sHWVbA18V\"]},\"@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0x212fb1b1d4beaf74354dad9bc329f44ee3c5375ef1c32acff76b4ecefc10f1d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d21c68cb321d1c8d0fa39fd9ecb6bbe3b2f26623b0f38af280a010c916c85f23\",\"dweb:/ipfs/Qmf2P51HRC4ekDHLYfbXu5SXR33gXrWtq6oKSmfyWqVRuC\"]}},\"version\":1}",
  "bytecode": "0x60806040523480156200001157600080fd5b506040516200319738038062003197833981810160405260208110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052508291506200010290506301ffc9a760e01b620001b7565b6200010d816200023f565b6200011f636cdb3d1360e11b620001b7565b620001316303a24d0760e21b620001b7565b506005805460ff191690556200015260006200014c62000258565b6200025c565b620001817f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66200014c62000258565b620001b07f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6200014c62000258565b50620003fe565b6001600160e01b0319808216141562000217576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152600160208190526040909120805460ff19169091179055565b80516200025490600490602084019062000362565b5050565b3390565b62000254828260008281526020818152604090912062000287918390620018ac620002db821b17901c565b1562000254576200029762000258565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620002f2836001600160a01b038416620002fb565b90505b92915050565b60006200030983836200034a565b6200034157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620002f5565b506000620002f5565b60009081526001919091016020526040902054151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003a557805160ff1916838001178555620003d5565b82800160010185558215620003d5579182015b82811115620003d5578251825591602001919060010190620003b8565b50620003e3929150620003e7565b5090565b5b80821115620003e35760008155600101620003e8565b612d89806200040e6000396000f3fe608060405234801561001057600080fd5b50600436106101725760003560e01c8063731133e9116100de578063ca15c87311610097578063e63ab1e911610071578063e63ab1e914610ae2578063e985e9c514610aea578063f242432a14610b18578063f5298aca14610be157610172565b8063ca15c87314610a91578063d539139314610aae578063d547741f14610ab657610172565b8063731133e9146109285780638456cb59146109e85780639010d07c146109f057806391d1485414610a2f578063a217fddf14610a5b578063a22cb46514610a6357610172565b80632f2ff15d116101305780632f2ff15d1461061a57806336568abe146106465780633f4ba83a146106725780634e1273f41461067a5780635c975abb146107ed5780636b20c454146107f557610172565b8062fdd58e1461017757806301ffc9a7146101b55780630e89341c146101f05780631f7fdffa14610282578063248a9ca31461043c5780632eb2c2d614610459575b600080fd5b6101a36004803603604081101561018d57600080fd5b506001600160a01b038135169060200135610c13565b60408051918252519081900360200190f35b6101dc600480360360208110156101cb57600080fd5b50356001600160e01b031916610c85565b604080519115158252519081900360200190f35b61020d6004803603602081101561020657600080fd5b5035610ca4565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024757818101518382015260200161022f565b50505050905090810190601f1680156102745780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61043a6004803603608081101561029857600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156102c257600080fd5b8201836020820111156102d457600080fd5b803590602001918460208302840111600160201b831117156102f557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561034457600080fd5b82018360208201111561035657600080fd5b803590602001918460208302840111600160201b8311171561037757600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156103c657600080fd5b8201836020820111156103d857600080fd5b803590602001918460018302840111600160201b831117156103f957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610d3c945050505050565b005b6101a36004803603602081101561045257600080fd5b5035610dba565b61043a600480360360a081101561046f57600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b8111156104a257600080fd5b8201836020820111156104b457600080fd5b803590602001918460208302840111600160201b831117156104d557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561052457600080fd5b82018360208201111561053657600080fd5b803590602001918460208302840111600160201b8311171561055757600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156105a657600080fd5b8201836020820111156105b857600080fd5b803590602001918460018302840111600160201b831117156105d957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610dcf945050505050565b61043a6004803603604081101561063057600080fd5b50803590602001356001600160a01b03166110d2565b61043a6004803603604081101561065c57600080fd5b50803590602001356001600160a01b0316611139565b61043a61119a565b61079d6004803603604081101561069057600080fd5b810190602081018135600160201b8111156106aa57600080fd5b8201836020820111156106bc57600080fd5b803590602001918460208302840111600160201b831117156106dd57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561072c57600080fd5b82018360208201111561073e57600080fd5b803590602001918460208302840111600160201b8311171561075f57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061120b945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156107d95781810151838201526020016107c1565b505050509050019250505060405180910390f35b6101dc6112f7565b61043a6004803603606081101561080b57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561083557600080fd5b82018360208201111561084757600080fd5b803590602001918460208302840111600160201b8311171561086857600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156108b757600080fd5b8201836020820111156108c957600080fd5b803590602001918460208302840111600160201b831117156108ea57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611301945050505050565b61043a6004803603608081101561093e57600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561097457600080fd5b82018360208201111561098657600080fd5b803590602001918460018302840111600160201b831117156109a757600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061137a945050505050565b61043a6113ed565b610a1360048036036040811015610a0657600080fd5b508035906020013561145c565b604080516001600160a01b039092168252519081900360200190f35b6101dc60048036036040811015610a4557600080fd5b50803590602001356001600160a01b031661147b565b6101a3611493565b61043a60048036036040811015610a7957600080fd5b506001600160a01b0381351690602001351515611498565b6101a360048036036020811015610aa757600080fd5b5035611587565b6101a361159e565b61043a60048036036040811015610acc57600080fd5b50803590602001356001600160a01b03166115c2565b6101a361161b565b6101dc60048036036040811015610b0057600080fd5b506001600160a01b038135811691602001351661163f565b61043a600480360360a0811015610b2e57600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a081016080820135600160201b811115610b6d57600080fd5b820183602082011115610b7f57600080fd5b803590602001918460018302840111600160201b83111715610ba057600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061166d945050505050565b61043a60048036036060811015610bf757600080fd5b506001600160a01b038135169060208101359060400135611838565b60006001600160a01b038316610c5a5760405162461bcd60e51b815260040180806020018281038252602b815260200180612a66602b913960400191505060405180910390fd5b5060008181526002602090815260408083206001600160a01b03861684529091529020545b92915050565b6001600160e01b03191660009081526001602052604090205460ff1690565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610d305780601f10610d0557610100808354040283529160200191610d30565b820191906000526020600020905b815481529060010190602001808311610d1357829003601f168201915b50505050509050919050565b610d6d7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610d686118c1565b61147b565b610da85760405162461bcd60e51b8152600401808060200182810382526038815260200180612bb46038913960400191505060405180910390fd5b610db4848484846118c5565b50505050565b60009081526020819052604090206002015490565b8151835114610e0f5760405162461bcd60e51b8152600401808060200182810382526028815260200180612cdc6028913960400191505060405180910390fd5b6001600160a01b038416610e545760405162461bcd60e51b8152600401808060200182810382526025815260200180612b3a6025913960400191505060405180910390fd5b610e5c6118c1565b6001600160a01b0316856001600160a01b03161480610e875750610e8785610e826118c1565b61163f565b610ec25760405162461bcd60e51b8152600401808060200182810382526032815260200180612b5f6032913960400191505060405180910390fd5b6000610ecc6118c1565b9050610edc818787878787611b1a565b60005b8451811015610fe2576000858281518110610ef657fe5b602002602001015190506000858381518110610f0e57fe5b60200260200101519050610f7b816040518060600160405280602a8152602001612bec602a91396002600086815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002054611b289092919063ffffffff16565b60008381526002602090815260408083206001600160a01b038e811685529252808320939093558a1681522054610fb29082611bbf565b60009283526002602090815260408085206001600160a01b038c1686529091529092209190915550600101610edf565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611068578181015183820152602001611050565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156110a757818101518382015260200161108f565b5050505090500194505050505060405180910390a46110ca818787878787611c19565b505050505050565b6000828152602081905260409020600201546110f090610d686118c1565b61112b5760405162461bcd60e51b815260040180806020018281038252602f815260200180612a37602f913960400191505060405180910390fd5b6111358282611e98565b5050565b6111416118c1565b6001600160a01b0316816001600160a01b0316146111905760405162461bcd60e51b815260040180806020018281038252602f815260200180612d25602f913960400191505060405180910390fd5b6111358282611f01565b6111c67f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610d686118c1565b6112015760405162461bcd60e51b815260040180806020018281038252603b815260200180612c16603b913960400191505060405180910390fd5b611209611f6a565b565b6060815183511461124d5760405162461bcd60e51b8152600401808060200182810382526029815260200180612cb36029913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561126757600080fd5b50604051908082528060200260200182016040528015611291578160200160208202803683370190505b50905060005b84518110156112ef576112d08582815181106112af57fe5b60200260200101518583815181106112c357fe5b6020026020010151610c13565b8282815181106112dc57fe5b6020908102919091010152600101611297565b509392505050565b60055460ff165b90565b6113096118c1565b6001600160a01b0316836001600160a01b0316148061132f575061132f83610e826118c1565b61136a5760405162461bcd60e51b8152600401808060200182810382526029815260200180612ae16029913960400191505060405180910390fd5b61137583838361200a565b505050565b6113a67f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610d686118c1565b6113e15760405162461bcd60e51b8152600401808060200182810382526038815260200180612bb46038913960400191505060405180910390fd5b610db484848484612278565b6114197f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610d686118c1565b6114545760405162461bcd60e51b8152600401808060200182810382526039815260200180612c516039913960400191505060405180910390fd5b611209612379565b600082815260208190526040812061147490836123fc565b9392505050565b60008281526020819052604081206114749083612408565b600081565b816001600160a01b03166114aa6118c1565b6001600160a01b031614156114f05760405162461bcd60e51b8152600401808060200182810382526029815260200180612c8a6029913960400191505060405180910390fd5b80600360006114fd6118c1565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff1916921515929092179091556115416118c1565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b6000818152602081905260408120610c7f9061241d565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6000828152602081905260409020600201546115e090610d686118c1565b6111905760405162461bcd60e51b8152600401808060200182810382526030815260200180612b0a6030913960400191505060405180910390fd5b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205460ff1690565b6001600160a01b0384166116b25760405162461bcd60e51b8152600401808060200182810382526025815260200180612b3a6025913960400191505060405180910390fd5b6116ba6118c1565b6001600160a01b0316856001600160a01b031614806116e057506116e085610e826118c1565b61171b5760405162461bcd60e51b8152600401808060200182810382526029815260200180612ae16029913960400191505060405180910390fd5b60006117256118c1565b905061174581878761173688612428565b61173f88612428565b87611b1a565b61178c836040518060600160405280602a8152602001612bec602a913960008781526002602090815260408083206001600160a01b038d1684529091529020549190611b28565b60008581526002602090815260408083206001600160a01b038b811685529252808320939093558716815220546117c39084611bbf565b60008581526002602090815260408083206001600160a01b03808b168086529184529382902094909455805188815291820187905280518a8416938616927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6292908290030190a46110ca81878787878761246c565b6118406118c1565b6001600160a01b0316836001600160a01b03161480611866575061186683610e826118c1565b6118a15760405162461bcd60e51b8152600401808060200182810382526029815260200180612ae16029913960400191505060405180910390fd5b6113758383836125dd565b6000611474836001600160a01b038416612710565b3390565b6001600160a01b03841661190a5760405162461bcd60e51b8152600401808060200182810382526021815260200180612d046021913960400191505060405180910390fd5b815183511461194a5760405162461bcd60e51b8152600401808060200182810382526028815260200180612cdc6028913960400191505060405180910390fd5b60006119546118c1565b905061196581600087878787611b1a565b60005b8451811015611a29576119e06002600087848151811061198457fe5b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b03168152602001908152602001600020548583815181106119ca57fe5b6020026020010151611bbf90919063ffffffff16565b600260008784815181106119f057fe5b602090810291909101810151825281810192909252604090810160009081206001600160a01b038b168252909252902055600101611968565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611ab0578181015183820152602001611a98565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611aef578181015183820152602001611ad7565b5050505090500194505050505060405180910390a4611b1381600087878787611c19565b5050505050565b6110ca86868686868661275a565b60008184841115611bb75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611b7c578181015183820152602001611b64565b50505050905090810190601f168015611ba95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015611474576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b611c2b846001600160a01b03166127ac565b156110ca57836001600160a01b031663bc197c8187878686866040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b03168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611cb9578181015183820152602001611ca1565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611cf8578181015183820152602001611ce0565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611d34578181015183820152602001611d1c565b50505050905090810190601f168015611d615780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b158015611d8657600080fd5b505af1925050508015611dab57506040513d6020811015611da657600080fd5b505160015b611e4057611db7612913565b80611dc25750611e09565b60405162461bcd60e51b8152602060048201818152835160248401528351849391928392604401919085019080838360008315611b7c578181015183820152602001611b64565b60405162461bcd60e51b81526004018080602001828103825260348152602001806129b96034913960400191505060405180910390fd5b6001600160e01b0319811663bc197c8160e01b14611e8f5760405162461bcd60e51b8152600401808060200182810382526028815260200180612a0f6028913960400191505060405180910390fd5b50505050505050565b6000828152602081905260409020611eb090826118ac565b1561113557611ebd6118c1565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081905260409020611f1990826127b2565b1561113557611f266118c1565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b611f726112f7565b611fba576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611fed6118c1565b604080516001600160a01b039092168252519081900360200190a1565b6001600160a01b03831661204f5760405162461bcd60e51b8152600401808060200182810382526023815260200180612b916023913960400191505060405180910390fd5b805182511461208f5760405162461bcd60e51b8152600401808060200182810382526028815260200180612cdc6028913960400191505060405180910390fd5b60006120996118c1565b90506120b981856000868660405180602001604052806000815250611b1a565b60005b83518110156121975761214e8382815181106120d457fe5b6020026020010151604051806060016040528060248152602001612a91602491396002600088868151811061210557fe5b602002602001015181526020019081526020016000206000896001600160a01b03166001600160a01b0316815260200190815260200160002054611b289092919063ffffffff16565b6002600086848151811061215e57fe5b602090810291909101810151825281810192909252604090810160009081206001600160a01b038a1682529092529020556001016120bc565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561221e578181015183820152602001612206565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561225d578181015183820152602001612245565b5050505090500194505050505060405180910390a450505050565b6001600160a01b0384166122bd5760405162461bcd60e51b8152600401808060200182810382526021815260200180612d046021913960400191505060405180910390fd5b60006122c76118c1565b90506122d98160008761173688612428565b60008481526002602090815260408083206001600160a01b03891684529091529020546123069084611bbf565b60008581526002602090815260408083206001600160a01b03808b16808652918452828520959095558151898152928301889052815190948616927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6292908290030190a4611b138160008787878761246c565b6123816112f7565b156123c6576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611fed6118c1565b600061147483836127c7565b6000611474836001600160a01b03841661282b565b6000610c7f82612843565b60408051600180825281830190925260609182919060208083019080368337019050509050828160008151811061245b57fe5b602090810291909101015292915050565b61247e846001600160a01b03166127ac565b156110ca57836001600160a01b031663f23a6e6187878686866040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561250d5781810151838201526020016124f5565b50505050905090810190601f16801561253a5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15801561255d57600080fd5b505af192505050801561258257506040513d602081101561257d57600080fd5b505160015b61258e57611db7612913565b6001600160e01b0319811663f23a6e6160e01b14611e8f5760405162461bcd60e51b8152600401808060200182810382526028815260200180612a0f6028913960400191505060405180910390fd5b6001600160a01b0383166126225760405162461bcd60e51b8152600401808060200182810382526023815260200180612b916023913960400191505060405180910390fd5b600061262c6118c1565b905061265c8185600061263e87612428565b61264787612428565b60405180602001604052806000815250611b1a565b6126a382604051806060016040528060248152602001612a916024913960008681526002602090815260408083206001600160a01b038b1684529091529020549190611b28565b60008481526002602090815260408083206001600160a01b03808a16808652918452828520959095558151888152928301879052815193949093908616927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6292908290030190a450505050565b600061271c838361282b565b61275257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610c7f565b506000610c7f565b6127688686868686866110ca565b6127706112f7565b156110ca5760405162461bcd60e51b815260040180806020018281038252602c815260200180612ab5602c913960400191505060405180910390fd5b3b151590565b6000611474836001600160a01b038416612847565b815460009082106128095760405162461bcd60e51b81526004018080602001828103825260228152602001806129ed6022913960400191505060405180910390fd5b82600001828154811061281857fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b60008181526001830160205260408120548015612903578354600019808301919081019060009087908390811061287a57fe5b906000526020600020015490508087600001848154811061289757fe5b6000918252602080832090910192909255828152600189810190925260409020908401905586548790806128c757fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610c7f565b6000915050610c7f565b60e01c90565b600060443d1015612923576112fe565b600481823e6308c379a0612937825161290d565b14612941576112fe565b6040513d600319016004823e80513d67ffffffffffffffff816024840111818411171561297157505050506112fe565b8284019250825191508082111561298b57505050506112fe565b503d830160208284010111156129a3575050506112fe565b601f01601f191681016020016040529150509056fe455243313135353a207472616e7366657220746f206e6f6e2045524331313535526563656976657220696d706c656d656e746572456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473455243313135353a204552433131353552656365697665722072656a656374656420746f6b656e73416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e74455243313135353a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373455243313135353a206275726e20616d6f756e7420657863656564732062616c616e6365455243313135355061757361626c653a20746f6b656e207472616e73666572207768696c6520706175736564455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65455243313135353a207472616e7366657220746f20746865207a65726f2061646472657373455243313135353a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243313135353a206275726e2066726f6d20746865207a65726f2061646472657373455243313135355072657365744d696e7465725061757365723a206d7573742068617665206d696e74657220726f6c6520746f206d696e74455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572455243313135355072657365744d696e7465725061757365723a206d75737420686176652070617573657220726f6c6520746f20756e7061757365455243313135355072657365744d696e7465725061757365723a206d75737420686176652070617573657220726f6c6520746f207061757365455243313135353a2073657474696e6720617070726f76616c2073746174757320666f722073656c66455243313135353a206163636f756e747320616e6420696473206c656e677468206d69736d61746368455243313135353a2069647320616e6420616d6f756e7473206c656e677468206d69736d61746368455243313135353a206d696e7420746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a2646970667358221220d6c98f8e2c304540ed0cb705c62e0b7e87a105051ad1665163e594ed6406f00b64736f6c634300060c0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101725760003560e01c8063731133e9116100de578063ca15c87311610097578063e63ab1e911610071578063e63ab1e914610ae2578063e985e9c514610aea578063f242432a14610b18578063f5298aca14610be157610172565b8063ca15c87314610a91578063d539139314610aae578063d547741f14610ab657610172565b8063731133e9146109285780638456cb59146109e85780639010d07c146109f057806391d1485414610a2f578063a217fddf14610a5b578063a22cb46514610a6357610172565b80632f2ff15d116101305780632f2ff15d1461061a57806336568abe146106465780633f4ba83a146106725780634e1273f41461067a5780635c975abb146107ed5780636b20c454146107f557610172565b8062fdd58e1461017757806301ffc9a7146101b55780630e89341c146101f05780631f7fdffa14610282578063248a9ca31461043c5780632eb2c2d614610459575b600080fd5b6101a36004803603604081101561018d57600080fd5b506001600160a01b038135169060200135610c13565b60408051918252519081900360200190f35b6101dc600480360360208110156101cb57600080fd5b50356001600160e01b031916610c85565b604080519115158252519081900360200190f35b61020d6004803603602081101561020657600080fd5b5035610ca4565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024757818101518382015260200161022f565b50505050905090810190601f1680156102745780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61043a6004803603608081101561029857600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156102c257600080fd5b8201836020820111156102d457600080fd5b803590602001918460208302840111600160201b831117156102f557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561034457600080fd5b82018360208201111561035657600080fd5b803590602001918460208302840111600160201b8311171561037757600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156103c657600080fd5b8201836020820111156103d857600080fd5b803590602001918460018302840111600160201b831117156103f957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610d3c945050505050565b005b6101a36004803603602081101561045257600080fd5b5035610dba565b61043a600480360360a081101561046f57600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b8111156104a257600080fd5b8201836020820111156104b457600080fd5b803590602001918460208302840111600160201b831117156104d557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561052457600080fd5b82018360208201111561053657600080fd5b803590602001918460208302840111600160201b8311171561055757600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156105a657600080fd5b8201836020820111156105b857600080fd5b803590602001918460018302840111600160201b831117156105d957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610dcf945050505050565b61043a6004803603604081101561063057600080fd5b50803590602001356001600160a01b03166110d2565b61043a6004803603604081101561065c57600080fd5b50803590602001356001600160a01b0316611139565b61043a61119a565b61079d6004803603604081101561069057600080fd5b810190602081018135600160201b8111156106aa57600080fd5b8201836020820111156106bc57600080fd5b803590602001918460208302840111600160201b831117156106dd57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561072c57600080fd5b82018360208201111561073e57600080fd5b803590602001918460208302840111600160201b8311171561075f57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061120b945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156107d95781810151838201526020016107c1565b505050509050019250505060405180910390f35b6101dc6112f7565b61043a6004803603606081101561080b57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561083557600080fd5b82018360208201111561084757600080fd5b803590602001918460208302840111600160201b8311171561086857600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156108b757600080fd5b8201836020820111156108c957600080fd5b803590602001918460208302840111600160201b831117156108ea57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611301945050505050565b61043a6004803603608081101561093e57600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561097457600080fd5b82018360208201111561098657600080fd5b803590602001918460018302840111600160201b831117156109a757600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061137a945050505050565b61043a6113ed565b610a1360048036036040811015610a0657600080fd5b508035906020013561145c565b604080516001600160a01b039092168252519081900360200190f35b6101dc60048036036040811015610a4557600080fd5b50803590602001356001600160a01b031661147b565b6101a3611493565b61043a60048036036040811015610a7957600080fd5b506001600160a01b0381351690602001351515611498565b6101a360048036036020811015610aa757600080fd5b5035611587565b6101a361159e565b61043a60048036036040811015610acc57600080fd5b50803590602001356001600160a01b03166115c2565b6101a361161b565b6101dc60048036036040811015610b0057600080fd5b506001600160a01b038135811691602001351661163f565b61043a600480360360a0811015610b2e57600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a081016080820135600160201b811115610b6d57600080fd5b820183602082011115610b7f57600080fd5b803590602001918460018302840111600160201b83111715610ba057600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061166d945050505050565b61043a60048036036060811015610bf757600080fd5b506001600160a01b038135169060208101359060400135611838565b60006001600160a01b038316610c5a5760405162461bcd60e51b815260040180806020018281038252602b815260200180612a66602b913960400191505060405180910390fd5b5060008181526002602090815260408083206001600160a01b03861684529091529020545b92915050565b6001600160e01b03191660009081526001602052604090205460ff1690565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610d305780601f10610d0557610100808354040283529160200191610d30565b820191906000526020600020905b815481529060010190602001808311610d1357829003601f168201915b50505050509050919050565b610d6d7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610d686118c1565b61147b565b610da85760405162461bcd60e51b8152600401808060200182810382526038815260200180612bb46038913960400191505060405180910390fd5b610db4848484846118c5565b50505050565b60009081526020819052604090206002015490565b8151835114610e0f5760405162461bcd60e51b8152600401808060200182810382526028815260200180612cdc6028913960400191505060405180910390fd5b6001600160a01b038416610e545760405162461bcd60e51b8152600401808060200182810382526025815260200180612b3a6025913960400191505060405180910390fd5b610e5c6118c1565b6001600160a01b0316856001600160a01b03161480610e875750610e8785610e826118c1565b61163f565b610ec25760405162461bcd60e51b8152600401808060200182810382526032815260200180612b5f6032913960400191505060405180910390fd5b6000610ecc6118c1565b9050610edc818787878787611b1a565b60005b8451811015610fe2576000858281518110610ef657fe5b602002602001015190506000858381518110610f0e57fe5b60200260200101519050610f7b816040518060600160405280602a8152602001612bec602a91396002600086815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002054611b289092919063ffffffff16565b60008381526002602090815260408083206001600160a01b038e811685529252808320939093558a1681522054610fb29082611bbf565b60009283526002602090815260408085206001600160a01b038c1686529091529092209190915550600101610edf565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611068578181015183820152602001611050565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156110a757818101518382015260200161108f565b5050505090500194505050505060405180910390a46110ca818787878787611c19565b505050505050565b6000828152602081905260409020600201546110f090610d686118c1565b61112b5760405162461bcd60e51b815260040180806020018281038252602f815260200180612a37602f913960400191505060405180910390fd5b6111358282611e98565b5050565b6111416118c1565b6001600160a01b0316816001600160a01b0316146111905760405162461bcd60e51b815260040180806020018281038252602f815260200180612d25602f913960400191505060405180910390fd5b6111358282611f01565b6111c67f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610d686118c1565b6112015760405162461bcd60e51b815260040180806020018281038252603b815260200180612c16603b913960400191505060405180910390fd5b611209611f6a565b565b6060815183511461124d5760405162461bcd60e51b8152600401808060200182810382526029815260200180612cb36029913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561126757600080fd5b50604051908082528060200260200182016040528015611291578160200160208202803683370190505b50905060005b84518110156112ef576112d08582815181106112af57fe5b60200260200101518583815181106112c357fe5b6020026020010151610c13565b8282815181106112dc57fe5b6020908102919091010152600101611297565b509392505050565b60055460ff165b90565b6113096118c1565b6001600160a01b0316836001600160a01b0316148061132f575061132f83610e826118c1565b61136a5760405162461bcd60e51b8152600401808060200182810382526029815260200180612ae16029913960400191505060405180910390fd5b61137583838361200a565b505050565b6113a67f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610d686118c1565b6113e15760405162461bcd60e51b8152600401808060200182810382526038815260200180612bb46038913960400191505060405180910390fd5b610db484848484612278565b6114197f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610d686118c1565b6114545760405162461bcd60e51b8152600401808060200182810382526039815260200180612c516039913960400191505060405180910390fd5b611209612379565b600082815260208190526040812061147490836123fc565b9392505050565b60008281526020819052604081206114749083612408565b600081565b816001600160a01b03166114aa6118c1565b6001600160a01b031614156114f05760405162461bcd60e51b8152600401808060200182810382526029815260200180612c8a6029913960400191505060405180910390fd5b80600360006114fd6118c1565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff1916921515929092179091556115416118c1565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b6000818152602081905260408120610c7f9061241d565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6000828152602081905260409020600201546115e090610d686118c1565b6111905760405162461bcd60e51b8152600401808060200182810382526030815260200180612b0a6030913960400191505060405180910390fd5b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205460ff1690565b6001600160a01b0384166116b25760405162461bcd60e51b8152600401808060200182810382526025815260200180612b3a6025913960400191505060405180910390fd5b6116ba6118c1565b6001600160a01b0316856001600160a01b031614806116e057506116e085610e826118c1565b61171b5760405162461bcd60e51b8152600401808060200182810382526029815260200180612ae16029913960400191505060405180910390fd5b60006117256118c1565b905061174581878761173688612428565b61173f88612428565b87611b1a565b61178c836040518060600160405280602a8152602001612bec602a913960008781526002602090815260408083206001600160a01b038d1684529091529020549190611b28565b60008581526002602090815260408083206001600160a01b038b811685529252808320939093558716815220546117c39084611bbf565b60008581526002602090815260408083206001600160a01b03808b168086529184529382902094909455805188815291820187905280518a8416938616927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6292908290030190a46110ca81878787878761246c565b6118406118c1565b6001600160a01b0316836001600160a01b03161480611866575061186683610e826118c1565b6118a15760405162461bcd60e51b8152600401808060200182810382526029815260200180612ae16029913960400191505060405180910390fd5b6113758383836125dd565b6000611474836001600160a01b038416612710565b3390565b6001600160a01b03841661190a5760405162461bcd60e51b8152600401808060200182810382526021815260200180612d046021913960400191505060405180910390fd5b815183511461194a5760405162461bcd60e51b8152600401808060200182810382526028815260200180612cdc6028913960400191505060405180910390fd5b60006119546118c1565b905061196581600087878787611b1a565b60005b8451811015611a29576119e06002600087848151811061198457fe5b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b03168152602001908152602001600020548583815181106119ca57fe5b6020026020010151611bbf90919063ffffffff16565b600260008784815181106119f057fe5b602090810291909101810151825281810192909252604090810160009081206001600160a01b038b168252909252902055600101611968565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611ab0578181015183820152602001611a98565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611aef578181015183820152602001611ad7565b5050505090500194505050505060405180910390a4611b1381600087878787611c19565b5050505050565b6110ca86868686868661275a565b60008184841115611bb75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611b7c578181015183820152602001611b64565b50505050905090810190601f168015611ba95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015611474576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b611c2b846001600160a01b03166127ac565b156110ca57836001600160a01b031663bc197c8187878686866040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b03168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611cb9578181015183820152602001611ca1565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611cf8578181015183820152602001611ce0565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611d34578181015183820152602001611d1c565b50505050905090810190601f168015611d615780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b158015611d8657600080fd5b505af1925050508015611dab57506040513d6020811015611da657600080fd5b505160015b611e4057611db7612913565b80611dc25750611e09565b60405162461bcd60e51b8152602060048201818152835160248401528351849391928392604401919085019080838360008315611b7c578181015183820152602001611b64565b60405162461bcd60e51b81526004018080602001828103825260348152602001806129b96034913960400191505060405180910390fd5b6001600160e01b0319811663bc197c8160e01b14611e8f5760405162461bcd60e51b8152600401808060200182810382526028815260200180612a0f6028913960400191505060405180910390fd5b50505050505050565b6000828152602081905260409020611eb090826118ac565b1561113557611ebd6118c1565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081905260409020611f1990826127b2565b1561113557611f266118c1565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b611f726112f7565b611fba576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611fed6118c1565b604080516001600160a01b039092168252519081900360200190a1565b6001600160a01b03831661204f5760405162461bcd60e51b8152600401808060200182810382526023815260200180612b916023913960400191505060405180910390fd5b805182511461208f5760405162461bcd60e51b8152600401808060200182810382526028815260200180612cdc6028913960400191505060405180910390fd5b60006120996118c1565b90506120b981856000868660405180602001604052806000815250611b1a565b60005b83518110156121975761214e8382815181106120d457fe5b6020026020010151604051806060016040528060248152602001612a91602491396002600088868151811061210557fe5b602002602001015181526020019081526020016000206000896001600160a01b03166001600160a01b0316815260200190815260200160002054611b289092919063ffffffff16565b6002600086848151811061215e57fe5b602090810291909101810151825281810192909252604090810160009081206001600160a01b038a1682529092529020556001016120bc565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561221e578181015183820152602001612206565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561225d578181015183820152602001612245565b5050505090500194505050505060405180910390a450505050565b6001600160a01b0384166122bd5760405162461bcd60e51b8152600401808060200182810382526021815260200180612d046021913960400191505060405180910390fd5b60006122c76118c1565b90506122d98160008761173688612428565b60008481526002602090815260408083206001600160a01b03891684529091529020546123069084611bbf565b60008581526002602090815260408083206001600160a01b03808b16808652918452828520959095558151898152928301889052815190948616927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6292908290030190a4611b138160008787878761246c565b6123816112f7565b156123c6576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611fed6118c1565b600061147483836127c7565b6000611474836001600160a01b03841661282b565b6000610c7f82612843565b60408051600180825281830190925260609182919060208083019080368337019050509050828160008151811061245b57fe5b602090810291909101015292915050565b61247e846001600160a01b03166127ac565b156110ca57836001600160a01b031663f23a6e6187878686866040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561250d5781810151838201526020016124f5565b50505050905090810190601f16801561253a5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15801561255d57600080fd5b505af192505050801561258257506040513d602081101561257d57600080fd5b505160015b61258e57611db7612913565b6001600160e01b0319811663f23a6e6160e01b14611e8f5760405162461bcd60e51b8152600401808060200182810382526028815260200180612a0f6028913960400191505060405180910390fd5b6001600160a01b0383166126225760405162461bcd60e51b8152600401808060200182810382526023815260200180612b916023913960400191505060405180910390fd5b600061262c6118c1565b905061265c8185600061263e87612428565b61264787612428565b60405180602001604052806000815250611b1a565b6126a382604051806060016040528060248152602001612a916024913960008681526002602090815260408083206001600160a01b038b1684529091529020549190611b28565b60008481526002602090815260408083206001600160a01b03808a16808652918452828520959095558151888152928301879052815193949093908616927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6292908290030190a450505050565b600061271c838361282b565b61275257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610c7f565b506000610c7f565b6127688686868686866110ca565b6127706112f7565b156110ca5760405162461bcd60e51b815260040180806020018281038252602c815260200180612ab5602c913960400191505060405180910390fd5b3b151590565b6000611474836001600160a01b038416612847565b815460009082106128095760405162461bcd60e51b81526004018080602001828103825260228152602001806129ed6022913960400191505060405180910390fd5b82600001828154811061281857fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b60008181526001830160205260408120548015612903578354600019808301919081019060009087908390811061287a57fe5b906000526020600020015490508087600001848154811061289757fe5b6000918252602080832090910192909255828152600189810190925260409020908401905586548790806128c757fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610c7f565b6000915050610c7f565b60e01c90565b600060443d1015612923576112fe565b600481823e6308c379a0612937825161290d565b14612941576112fe565b6040513d600319016004823e80513d67ffffffffffffffff816024840111818411171561297157505050506112fe565b8284019250825191508082111561298b57505050506112fe565b503d830160208284010111156129a3575050506112fe565b601f01601f191681016020016040529150509056fe455243313135353a207472616e7366657220746f206e6f6e2045524331313535526563656976657220696d706c656d656e746572456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473455243313135353a204552433131353552656365697665722072656a656374656420746f6b656e73416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e74455243313135353a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373455243313135353a206275726e20616d6f756e7420657863656564732062616c616e6365455243313135355061757361626c653a20746f6b656e207472616e73666572207768696c6520706175736564455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65455243313135353a207472616e7366657220746f20746865207a65726f2061646472657373455243313135353a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243313135353a206275726e2066726f6d20746865207a65726f2061646472657373455243313135355072657365744d696e7465725061757365723a206d7573742068617665206d696e74657220726f6c6520746f206d696e74455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572455243313135355072657365744d696e7465725061757365723a206d75737420686176652070617573657220726f6c6520746f20756e7061757365455243313135355072657365744d696e7465725061757365723a206d75737420686176652070617573657220726f6c6520746f207061757365455243313135353a2073657474696e6720617070726f76616c2073746174757320666f722073656c66455243313135353a206163636f756e747320616e6420696473206c656e677468206d69736d61746368455243313135353a2069647320616e6420616d6f756e7473206c656e677468206d69736d61746368455243313135353a206d696e7420746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a2646970667358221220d6c98f8e2c304540ed0cb705c62e0b7e87a105051ad1665163e594ed6406f00b64736f6c634300060c0033",
  "immutableReferences": {},
  "sourceMap": "838:2533:6:-:0;;;1215:207;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1215:207:6;;;;;;;;;;-1:-1:-1;1215:207:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1215:207:6;;-1:-1:-1;1261:3:6;;-1:-1:-1;768:40:2;;-1:-1:-1;;;;768:18:2;:40::i;:::-;2026:13:8;2034:4;2026:7;:13::i;:::-;2128:41;-1:-1:-1;;;2128:18:8;:41::i;:::-;2269:54;-1:-1:-1;;;2269:18:8;:54::i;:::-;-1:-1:-1;935:7:32;:15;;-1:-1:-1;;935:15:32;;;1276:44:6::1;945:5:32::0;1307:12:6::1;:10;:12::i;:::-;1276:10;:44::i;:::-;1331:37;977:24;1355:12;:10;:12::i;1331:37::-;1378;1045:24;1402:12;:10;:12::i;1378:37::-;1215:207:::0;838:2533;;1507:198:2;-1:-1:-1;;;;;;1590:25:2;;;;;1582:66;;;;;-1:-1:-1;;;1582:66:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1658:33:2;;;;;1694:4;1658:33;;;;;;;;:40;;-1:-1:-1;;1658:40:2;;;;;;1507:198::o;7541:86:8:-;7607:13;;;;:4;;:13;;;;;:::i;:::-;;7541:86;:::o;598:104:28:-;685:10;598:104;:::o;6588:110:1:-;6666:25;6677:4;6683:7;7098:6;:12;;;;;;;;;;;:33;;7123:7;;7098:24;;;;;:33;;:::i;:::-;7094:109;;;7179:12;:10;:12::i;:::-;-1:-1:-1;;;;;7152:40:1;7170:7;-1:-1:-1;;;;;7152:40:1;7164:4;7152:40;;;;;;;;;;7025:184;;:::o;6429:150:31:-;6499:4;6522:50;6527:3;-1:-1:-1;;;;;6547:23:31;;6522:4;:50::i;:::-;6515:57;;6429:150;;;;;:::o;1640:404::-;1703:4;1724:21;1734:3;1739:5;1724:9;:21::i;:::-;1719:319;;-1:-1:-1;1761:23:31;;;;;;;;:11;:23;;;;;;;;;;;;;1941:18;;1919:19;;;:12;;;:19;;;;;;:40;;;;1973:11;;1719:319;-1:-1:-1;2022:5:31;2015:12;;3805:127;3878:4;3901:19;;;:12;;;;;:19;;;;;;:24;;;3805:127::o;838:2533:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;838:2533:6;;;-1:-1:-1;838:2533:6;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "838:2533:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2976:228:8;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2976:228:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;965:148:2;;;;;;;;;;;;;;;;-1:-1:-1;965:148:2;-1:-1:-1;;;;;;965:148:2;;:::i;:::-;;;;;;;;;;;;;;;;;;2729:105:8;;;;;;;;;;;;;;;;-1:-1:-1;2729:105:8;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:278:6;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1981:278:6;;;;;;;;;;;;;;;-1:-1:-1;;;1981:278:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1981:278:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1981:278:6;;;;;;;;-1:-1:-1;1981:278:6;;-1:-1:-1;;;;;1981:278:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1981:278:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1981:278:6;;;;;;;;-1:-1:-1;1981:278:6;;-1:-1:-1;;;;;1981:278:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1981:278:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1981:278:6;;-1:-1:-1;1981:278:6;;-1:-1:-1;;;;;1981:278:6:i;:::-;;4282:112:1;;;;;;;;;;;;;;;;-1:-1:-1;4282:112:1;;:::i;5534:1184:8:-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5534:1184:8;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5534:1184:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5534:1184:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5534:1184:8;;;;;;;;-1:-1:-1;5534:1184:8;;-1:-1:-1;;;;;5534:1184:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5534:1184:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5534:1184:8;;;;;;;;-1:-1:-1;5534:1184:8;;-1:-1:-1;;;;;5534:1184:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5534:1184:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5534:1184:8;;-1:-1:-1;5534:1184:8;;-1:-1:-1;;;;;5534:1184:8:i;4644:223:1:-;;;;;;;;;;;;;;;;-1:-1:-1;4644:223:1;;;;;;-1:-1:-1;;;;;4644:223:1;;:::i;5818:205::-;;;;;;;;;;;;;;;;-1:-1:-1;5818:205:1;;;;;;-1:-1:-1;;;;;5818:205:1;;:::i;2844:177:6:-;;;:::i;3361:530:8:-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3361:530:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3361:530:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3361:530:8;;;;;;;;-1:-1:-1;3361:530:8;;-1:-1:-1;;;;;3361:530:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3361:530:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3361:530:8;;-1:-1:-1;3361:530:8;;-1:-1:-1;;;;;3361:530:8:i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1052:84:32;;;:::i;606:312:9:-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;606:312:9;;;;;;;;;;;;;;;-1:-1:-1;;;606:312:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;606:312:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;606:312:9;;;;;;;;-1:-1:-1;606:312:9;;-1:-1:-1;;;;;606:312:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;606:312:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;606:312:9;;-1:-1:-1;606:312:9;;-1:-1:-1;;;;;606:312:9:i;1633:246:6:-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1633:246:6;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1633:246:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1633:246:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1633:246:6;;-1:-1:-1;1633:246:6;;-1:-1:-1;;;;;1633:246:6:i;2464:171::-;;;:::i;3965:136:1:-;;;;;;;;;;;;;;;;-1:-1:-1;3965:136:1;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;3965:136:1;;;;;;;;;;;;;;2950:137;;;;;;;;;;;;;;;;-1:-1:-1;2950:137:1;;;;;;-1:-1:-1;;;;;2950:137:1;;:::i;1727:49::-;;;:::i;3959:306:8:-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3959:306:8;;;;;;;;;;:::i;3255:125:1:-;;;;;;;;;;;;;;;;-1:-1:-1;3255:125:1;;:::i;939:62:6:-;;;:::i;5101:226:1:-;;;;;;;;;;;;;;;;-1:-1:-1;5101:226:1;;;;;;-1:-1:-1;;;;;5101:226:1;;:::i;1007:62:6:-;;;:::i;4332:166:8:-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4332:166:8;;;;;;;;;;:::i;4565:897::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4565:897:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4565:897:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4565:897:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4565:897:8;;-1:-1:-1;4565:897:8;;-1:-1:-1;;;;;4565:897:8:i;320:280:9:-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;320:280:9;;;;;;;;;;;;;:::i;2976:228:8:-;3062:7;-1:-1:-1;;;;;3089:21:8;;3081:77;;;;-1:-1:-1;;;3081:77:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3175:13:8;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;3175:22:8;;;;;;;;;;2976:228;;;;;:::o;965:148:2:-;-1:-1:-1;;;;;;1073:33:2;1050:4;1073:33;;;:20;:33;;;;;;;;;965:148::o;2729:105:8:-;2823:4;2816:11;;;;;;;;-1:-1:-1;;2816:11:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2791:13;;2816:11;;2823:4;;2816:11;;2823:4;2816:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2729:105;;;:::o;1981:278:6:-;2112:34;977:24;2133:12;:10;:12::i;:::-;2112:7;:34::i;:::-;2104:103;;;;-1:-1:-1;;;2104:103:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2218:34;2229:2;2233:3;2238:7;2247:4;2218:10;:34::i;:::-;1981:278;;;;:::o;4282:112:1:-;4339:7;4365:12;;;;;;;;;;:22;;;;4282:112::o;5534:1184:8:-;5788:7;:14;5774:3;:10;:28;5766:81;;;;-1:-1:-1;;;5766:81:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5865:16:8;;5857:66;;;;-1:-1:-1;;;5857:66:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5962:12;:10;:12::i;:::-;-1:-1:-1;;;;;5954:20:8;:4;-1:-1:-1;;;;;5954:20:8;;:60;;;;5978:36;5995:4;6001:12;:10;:12::i;:::-;5978:16;:36::i;:::-;5933:157;;;;-1:-1:-1;;;5933:157:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6101:16;6120:12;:10;:12::i;:::-;6101:31;;6143:60;6164:8;6174:4;6180:2;6184:3;6189:7;6198:4;6143:20;:60::i;:::-;6219:9;6214:349;6238:3;:10;6234:1;:14;6214:349;;;6269:10;6282:3;6286:1;6282:6;;;;;;;;;;;;;;6269:19;;6302:14;6319:7;6327:1;6319:10;;;;;;;;;;;;;;6302:27;;6366:123;6407:6;6366:123;;;;;;;;;;;;;;;;;:9;:13;6376:2;6366:13;;;;;;;;;;;:19;6380:4;-1:-1:-1;;;;;6366:19:8;-1:-1:-1;;;;;6366:19:8;;;;;;;;;;;;;:23;;:123;;;;;:::i;:::-;6344:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;6344:19:8;;;;;;;;;;:145;;;;6523:17;;;;;;:29;;6545:6;6523:21;:29::i;:::-;6503:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;6503:17:8;;;;;;;;;;:49;;;;-1:-1:-1;6250:3:8;;6214:349;;;;6608:2;-1:-1:-1;;;;;6578:47:8;6602:4;-1:-1:-1;;;;;6578:47:8;6592:8;-1:-1:-1;;;;;6578:47:8;;6612:3;6617:7;6578:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6636:75;6672:8;6682:4;6688:2;6692:3;6697:7;6706:4;6636:35;:75::i;:::-;5534:1184;;;;;;:::o;4644:223:1:-;4735:6;:12;;;;;;;;;;:22;;;4727:45;;4759:12;:10;:12::i;4727:45::-;4719:105;;;;-1:-1:-1;;;4719:105:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4835:25;4846:4;4852:7;4835:10;:25::i;:::-;4644:223;;:::o;5818:205::-;5915:12;:10;:12::i;:::-;-1:-1:-1;;;;;5904:23:1;:7;-1:-1:-1;;;;;5904:23:1;;5896:83;;;;-1:-1:-1;;;5896:83:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5990:26;6002:4;6008:7;5990:11;:26::i;2844:177:6:-;2896:34;1045:24;2917:12;:10;:12::i;2896:34::-;2888:106;;;;-1:-1:-1;;;2888:106:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3004:10;:8;:10::i;:::-;2844:177::o;3361:530:8:-;3534:16;3593:3;:10;3574:8;:15;:29;3566:83;;;;-1:-1:-1;;;3566:83:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3660:30;3707:8;:15;3693:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3693:30:8;;3660:63;;3739:9;3734:120;3758:8;:15;3754:1;:19;3734:120;;;3813:30;3823:8;3832:1;3823:11;;;;;;;;;;;;;;3836:3;3840:1;3836:6;;;;;;;;;;;;;;3813:9;:30::i;:::-;3794:13;3808:1;3794:16;;;;;;;;;;;;;;;;;:49;3775:3;;3734:120;;;-1:-1:-1;3871:13:8;3361:530;-1:-1:-1;;;3361:530:8:o;1052:84:32:-;1122:7;;;;1052:84;;:::o;606:312:9:-;746:12;:10;:12::i;:::-;-1:-1:-1;;;;;735:23:9;:7;-1:-1:-1;;;;;735:23:9;;:66;;;;762:39;779:7;788:12;:10;:12::i;762:39::-;714:154;;;;-1:-1:-1;;;714:154:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;879:32;890:7;899:3;904:6;879:10;:32::i;:::-;606:312;;;:::o;1633:246:6:-;1739:34;977:24;1760:12;:10;:12::i;1739:34::-;1731:103;;;;-1:-1:-1;;;1731:103:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1845:27;1851:2;1855;1859:6;1867:4;1845:5;:27::i;2464:171::-;2514:34;1045:24;2535:12;:10;:12::i;2514:34::-;2506:104;;;;-1:-1:-1;;;2506:104:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2620:8;:6;:8::i;3965:136:1:-;4038:7;4064:12;;;;;;;;;;:30;;4088:5;4064:23;:30::i;:::-;4057:37;3965:136;-1:-1:-1;;;3965:136:1:o;2950:137::-;3019:4;3042:12;;;;;;;;;;:38;;3072:7;3042:29;:38::i;1727:49::-;1772:4;1727:49;:::o;3959:306:8:-;4077:8;-1:-1:-1;;;;;4061:24:8;:12;:10;:12::i;:::-;-1:-1:-1;;;;;4061:24:8;;;4053:78;;;;-1:-1:-1;;;4053:78:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4187:8;4142:18;:32;4161:12;:10;:12::i;:::-;-1:-1:-1;;;;;4142:32:8;;;;;;;;;;;;;;;;;-1:-1:-1;4142:32:8;;;:42;;;;;;;;;;;;:53;;-1:-1:-1;;4142:53:8;;;;;;;;;;;4225:12;:10;:12::i;:::-;-1:-1:-1;;;;;4210:48:8;;4249:8;4210:48;;;;;;;;;;;;;;;;;;;;3959:306;;:::o;3255:125:1:-;3318:7;3344:12;;;;;;;;;;:29;;:27;:29::i;939:62:6:-;977:24;939:62;:::o;5101:226:1:-;5193:6;:12;;;;;;;;;;:22;;;5185:45;;5217:12;:10;:12::i;5185:45::-;5177:106;;;;-1:-1:-1;;;5177:106:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1007:62:6;1045:24;1007:62;:::o;4332:166:8:-;-1:-1:-1;;;;;4454:27:8;;;4431:4;4454:27;;;:18;:27;;;;;;;;:37;;;;;;;;;;;;;;;4332:166::o;4565:897::-;-1:-1:-1;;;;;4780:16:8;;4772:66;;;;-1:-1:-1;;;4772:66:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4877:12;:10;:12::i;:::-;-1:-1:-1;;;;;4869:20:8;:4;-1:-1:-1;;;;;4869:20:8;;:60;;;;4893:36;4910:4;4916:12;:10;:12::i;4893:36::-;4848:148;;;;-1:-1:-1;;;4848:148:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5007:16;5026:12;:10;:12::i;:::-;5007:31;;5049:96;5070:8;5080:4;5086:2;5090:21;5108:2;5090:17;:21::i;:::-;5113:25;5131:6;5113:17;:25::i;:::-;5140:4;5049:20;:96::i;:::-;5178:77;5202:6;5178:77;;;;;;;;;;;;;;;;;:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;5178:19:8;;;;;;;;;;;:77;:23;:77::i;:::-;5156:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;5156:19:8;;;;;;;;;;:99;;;;5285:17;;;;;;:29;;5307:6;5285:21;:29::i;:::-;5265:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;5265:17:8;;;;;;;;;;;;;:49;;;;5330:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5387:68;5418:8;5428:4;5434:2;5438;5442:6;5450:4;5387:30;:68::i;320:280:9:-;435:12;:10;:12::i;:::-;-1:-1:-1;;;;;424:23:9;:7;-1:-1:-1;;;;;424:23:9;;:66;;;;451:39;468:7;477:12;:10;:12::i;451:39::-;403:154;;;;-1:-1:-1;;;403:154:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;568:25;574:7;583:2;587:5;568;:25::i;6429:150:31:-;6499:4;6522:50;6527:3;-1:-1:-1;;;;;6547:23:31;;6522:4;:50::i;598:104:28:-;685:10;598:104;:::o;8932:700:8:-;-1:-1:-1;;;;;9066:16:8;;9058:62;;;;-1:-1:-1;;;9058:62:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9152:7;:14;9138:3;:10;:28;9130:81;;;;-1:-1:-1;;;9130:81:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9222:16;9241:12;:10;:12::i;:::-;9222:31;;9264:66;9285:8;9303:1;9307:2;9311:3;9316:7;9325:4;9264:20;:66::i;:::-;9346:6;9341:124;9362:3;:10;9358:1;:14;9341:124;;;9417:37;9432:9;:17;9442:3;9446:1;9442:6;;;;;;;;;;;;;;9432:17;;;;;;;;;;;:21;9450:2;-1:-1:-1;;;;;9432:21:8;-1:-1:-1;;;;;9432:21:8;;;;;;;;;;;;;9417:7;9425:1;9417:10;;;;;;;;;;;;;;:14;;:37;;;;:::i;:::-;9393:9;:17;9403:3;9407:1;9403:6;;;;;;;;;;;;;;;;;;;9393:17;;;;;;;;;;;;;-1:-1:-1;9393:17:8;;;-1:-1:-1;;;;;9393:21:8;;;;;;;;;:61;9374:3;;9341:124;;;;9516:2;-1:-1:-1;;;;;9480:53:8;9512:1;-1:-1:-1;;;;;9480:53:8;9494:8;-1:-1:-1;;;;;9480:53:8;;9520:3;9525:7;9480:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9544:81;9580:8;9598:1;9602:2;9606:3;9611:7;9620:4;9544:35;:81::i;:::-;8932:700;;;;;:::o;3027:342:6:-;3296:66;3323:8;3333:4;3339:2;3343:3;3348:7;3357:4;3296:26;:66::i;5432:163:5:-;5518:7;5553:12;5545:6;;;;5537:29;;;;-1:-1:-1;;;5537:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5583:5:5;;;5432:163::o;2690:175::-;2748:7;2779:5;;;2802:6;;;;2794:46;;;;;-1:-1:-1;;;2794:46:5;;;;;;;;;;;;;;;;;;;;;;;;;;;13240:778:8;13484:15;:2;-1:-1:-1;;;;;13484:13:8;;:15::i;:::-;13480:532;;;13536:2;-1:-1:-1;;;;;13519:43:8;;13563:8;13573:4;13579:3;13584:7;13593:4;13519:79;;;;;;;;;;;;;-1:-1:-1;;;;;13519:79:8;;;;;;-1:-1:-1;;;;;13519:79:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13519:79:8;;;13515:487;;;;:::i;:::-;;;;;;;;13871:14;;-1:-1:-1;;;13871:14:8;;;;;;;;;;;;;;;;;13878:6;;13871:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13515:487;13925:62;;-1:-1:-1;;;13925:62:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13515:487;-1:-1:-1;;;;;;13647:64:8;;-1:-1:-1;;;13647:64:8;13643:161;;13735:50;;-1:-1:-1;;;13735:50:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13643:161;13599:219;13240:778;;;;;;:::o;7025:184:1:-;7098:6;:12;;;;;;;;;;:33;;7123:7;7098:24;:33::i;:::-;7094:109;;;7179:12;:10;:12::i;:::-;-1:-1:-1;;;;;7152:40:1;7170:7;-1:-1:-1;;;;;7152:40:1;7164:4;7152:40;;;;;;;;;;7025:184;;:::o;7215:188::-;7289:6;:12;;;;;;;;;;:36;;7317:7;7289:27;:36::i;:::-;7285:112;;;7373:12;:10;:12::i;:::-;-1:-1:-1;;;;;7346:40:1;7364:7;-1:-1:-1;;;;;7346:40:1;7358:4;7346:40;;;;;;;;;;7215:188;;:::o;2064:117:32:-;1631:8;:6;:8::i;:::-;1623:41;;;;;-1:-1:-1;;;1623:41:32;;;;;;;;;;;;-1:-1:-1;;;1623:41:32;;;;;;;;;;;;;;;2122:7:::1;:15:::0;;-1:-1:-1;;2122:15:32::1;::::0;;2152:22:::1;2161:12;:10;:12::i;:::-;2152:22;::::0;;-1:-1:-1;;;;;2152:22:32;;::::1;::::0;;;;;;;::::1;::::0;;::::1;2064:117::o:0;10613:705:8:-;-1:-1:-1;;;;;10733:21:8;;10725:69;;;;-1:-1:-1;;;10725:69:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10826:7;:14;10812:3;:10;:28;10804:81;;;;-1:-1:-1;;;10804:81:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10896:16;10915:12;:10;:12::i;:::-;10896:31;;10938:69;10959:8;10969:7;10986:1;10990:3;10995:7;10938:69;;;;;;;;;;;;:20;:69::i;:::-;11023:6;11018:220;11039:3;:10;11035:1;:14;11018:220;;;11099:128;11147:7;11155:1;11147:10;;;;;;;;;;;;;;11099:128;;;;;;;;;;;;;;;;;:9;:17;11109:3;11113:1;11109:6;;;;;;;;;;;;;;11099:17;;;;;;;;;;;:26;11117:7;-1:-1:-1;;;;;11099:26:8;-1:-1:-1;;;;;11099:26:8;;;;;;;;;;;;;:30;;:128;;;;;:::i;:::-;11070:9;:17;11080:3;11084:1;11080:6;;;;;;;;;;;;;;;;;;;11070:17;;;;;;;;;;;;;-1:-1:-1;11070:17:8;;;-1:-1:-1;;;;;11070:26:8;;;;;;;;;:157;11051:3;;11018:220;;;;11294:1;-1:-1:-1;;;;;11253:58:8;11277:7;-1:-1:-1;;;;;11253:58:8;11267:8;-1:-1:-1;;;;;11253:58:8;;11298:3;11303:7;11253:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10613:705;;;;:::o;8015:572::-;-1:-1:-1;;;;;8129:21:8;;8121:67;;;;-1:-1:-1;;;8121:67:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8199:16;8218:12;:10;:12::i;:::-;8199:31;;8241:107;8262:8;8280:1;8284:7;8293:21;8311:2;8293:17;:21::i;8241:107::-;8384:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;8384:22:8;;;;;;;;;;:34;;8411:6;8384:26;:34::i;:::-;8359:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;8359:22:8;;;;;;;;;;;;:59;;;;8433:57;;;;;;;;;;;;;8359:22;;8433:57;;;;;;;;;;;;8501:79;8532:8;8550:1;8554:7;8563:2;8567:6;8575:4;8501:30;:79::i;1817:115:32:-;1366:8;:6;:8::i;:::-;1365:9;1357:38;;;;;-1:-1:-1;;;1357:38:32;;;;;;;;;;;;-1:-1:-1;;;1357:38:32;;;;;;;;;;;;;;;1876:7:::1;:14:::0;;-1:-1:-1;;1876:14:32::1;1886:4;1876:14;::::0;;1905:20:::1;1912:12;:10;:12::i;7677:156:31:-:0;7751:7;7801:22;7805:3;7817:5;7801:3;:22::i;6984:165::-;7064:4;7087:55;7097:3;-1:-1:-1;;;;;7117:23:31;;7087:9;:55::i;7230:115::-;7293:7;7319:19;7327:3;7319:7;:19::i;14024:193:8:-;14143:16;;;14157:1;14143:16;;;;;;;;;14090;;;;14143;;;;;;;;;;;;-1:-1:-1;14143:16:8;14118:41;;14180:7;14169:5;14175:1;14169:8;;;;;;;;;;;;;;;;;:18;14205:5;14024:193;-1:-1:-1;;14024:193:8:o;12493:741::-;12712:15;:2;-1:-1:-1;;;;;12712:13:8;;:15::i;:::-;12708:520;;;12764:2;-1:-1:-1;;;;;12747:38:8;;12786:8;12796:4;12802:2;12806:6;12814:4;12747:72;;;;;;;;;;;;;-1:-1:-1;;;;;12747:72:8;;;;;;-1:-1:-1;;;;;12747:72:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12747:72:8;;;12743:475;;;;:::i;:::-;-1:-1:-1;;;;;;12868:59:8;;-1:-1:-1;;;12868:59:8;12864:156;;12951:50;;-1:-1:-1;;;12951:50:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9881:538;-1:-1:-1;;;;;9976:21:8;;9968:69;;;;-1:-1:-1;;;9968:69:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10048:16;10067:12;:10;:12::i;:::-;10048:31;;10090:105;10111:8;10121:7;10138:1;10142:21;10160:2;10142:17;:21::i;:::-;10165:25;10183:6;10165:17;:25::i;:::-;10090:105;;;;;;;;;;;;:20;:105::i;:::-;10231:108;10271:6;10231:108;;;;;;;;;;;;;;;;;:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;10231:22:8;;;;;;;;;;;:108;:26;:108::i;:::-;10206:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;10206:22:8;;;;;;;;;;;;:133;;;;10355:57;;;;;;;;;;;;;10206:13;;:22;;10355:57;;;;;;;;;;;;;9881:538;;;;:::o;1640:404:31:-;1703:4;1724:21;1734:3;1739:5;1724:9;:21::i;:::-;1719:319;;-1:-1:-1;1761:23:31;;;;;;;;:11;:23;;;;;;;;;;;;;1941:18;;1919:19;;;:12;;;:19;;;;;;:40;;;;1973:11;;1719:319;-1:-1:-1;2022:5:31;2015:12;;630:409:11;889:66;916:8;926:4;932:2;936:3;941:7;950:4;889:26;:66::i;:::-;975:8;:6;:8::i;:::-;974:9;966:66;;;;-1:-1:-1;;;966:66:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;726:413:27;1086:20;1124:8;;;726:413::o;6747:156:31:-;6820:4;6843:53;6851:3;-1:-1:-1;;;;;6871:23:31;;6843:7;:53::i;4452:201::-;4546:18;;4519:7;;4546:26;-1:-1:-1;4538:73:31;;;;-1:-1:-1;;;4538:73:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4628:3;:11;;4640:5;4628:18;;;;;;;;;;;;;;;;4621:25;;4452:201;;;;:::o;3805:127::-;3878:4;3901:19;;;:12;;;;;:19;;;;;;:24;;;3805:127::o;4013:107::-;4095:18;;4013:107::o;2212:1512::-;2278:4;2415:19;;;:12;;;:19;;;;;;2449:15;;2445:1273;;2878:18;;-1:-1:-1;;2830:14:31;;;;2878:22;;;;2806:21;;2878:3;;:22;;3160;;;;;;;;;;;;;;3140:42;;3303:9;3274:3;:11;;3286:13;3274:26;;;;;;;;;;;;;;;;;;;:38;;;;3378:23;;;3420:1;3378:12;;;:23;;;;;;3404:17;;;3378:43;;3527:17;;3378:3;;3527:17;;;;;;;;;;;;;;;;;;;;;;3619:3;:12;;:19;3632:5;3619:19;;;;;;;;;;;3612:26;;;3660:4;3653:11;;;;;;;;2445:1273;3702:5;3695:12;;;;;110:106:-1;195:3;191:15;;163:53::o;224:739::-;;297:4;279:16;276:26;273:2;;;305:5;;273:2;339:1;-1:-1;;318:23;414:10;357:34;-1:-1;382:8;357:34;:::i;:::-;406:19;396:2;;429:5;;396:2;460;454:9;496:16;-1:-1;;492:24;339:1;454:9;468:49;543:4;537:11;624:16;576:18;624:16;617:4;609:6;605:17;602:39;576:18;568:6;565:30;556:91;553:2;;;655:5;;;;;;553:2;693:6;687:4;683:17;672:28;;725:3;719:10;705:24;;576:18;740:6;737:30;734:2;;;770:5;;;;;;734:2;;847:16;841:4;837:27;807:4;814:6;802:3;794:27;;829:36;826:2;;;868:5;;;;;826:2;89:7;73:14;-1:-1;;69:28;892:50;;807:4;892:50;460:2;881:62;900:3;-1:-1;;267:696;:::o",
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\nimport \"../access/AccessControl.sol\";\nimport \"../utils/Context.sol\";\nimport \"../token/ERC1155/ERC1155.sol\";\nimport \"../token/ERC1155/ERC1155Burnable.sol\";\nimport \"../token/ERC1155/ERC1155Pausable.sol\";\n\n/**\n * @dev {ERC1155} token, including:\n *\n *  - ability for holders to burn (destroy) their tokens\n *  - a minter role that allows for token minting (creation)\n *  - a pauser role that allows to stop all token transfers\n *\n * This contract uses {AccessControl} to lock permissioned functions using the\n * different roles - head to its documentation for details.\n *\n * The account that deploys the contract will be granted the minter and pauser\n * roles, as well as the default admin role, which will let it grant both minter\n * and pauser roles to other accounts.\n */\ncontract ERC1155PresetMinterPauser is Context, AccessControl, ERC1155Burnable, ERC1155Pausable {\n    bytes32 public constant MINTER_ROLE = keccak256(\"MINTER_ROLE\");\n    bytes32 public constant PAUSER_ROLE = keccak256(\"PAUSER_ROLE\");\n\n    /**\n     * @dev Grants `DEFAULT_ADMIN_ROLE`, `MINTER_ROLE`, and `PAUSER_ROLE` to the account that\n     * deploys the contract.\n     */\n    constructor(string memory uri) public ERC1155(uri) {\n        _setupRole(DEFAULT_ADMIN_ROLE, _msgSender());\n\n        _setupRole(MINTER_ROLE, _msgSender());\n        _setupRole(PAUSER_ROLE, _msgSender());\n    }\n\n    /**\n     * @dev Creates `amount` new tokens for `to`, of token type `id`.\n     *\n     * See {ERC1155-_mint}.\n     *\n     * Requirements:\n     *\n     * - the caller must have the `MINTER_ROLE`.\n     */\n    function mint(address to, uint256 id, uint256 amount, bytes memory data) public virtual {\n        require(hasRole(MINTER_ROLE, _msgSender()), \"ERC1155PresetMinterPauser: must have minter role to mint\");\n\n        _mint(to, id, amount, data);\n    }\n\n    /**\n     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] variant of {mint}.\n     */\n    function mintBatch(address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data) public virtual {\n        require(hasRole(MINTER_ROLE, _msgSender()), \"ERC1155PresetMinterPauser: must have minter role to mint\");\n\n        _mintBatch(to, ids, amounts, data);\n    }\n\n    /**\n     * @dev Pauses all token transfers.\n     *\n     * See {ERC1155Pausable} and {Pausable-_pause}.\n     *\n     * Requirements:\n     *\n     * - the caller must have the `PAUSER_ROLE`.\n     */\n    function pause() public virtual {\n        require(hasRole(PAUSER_ROLE, _msgSender()), \"ERC1155PresetMinterPauser: must have pauser role to pause\");\n        _pause();\n    }\n\n    /**\n     * @dev Unpauses all token transfers.\n     *\n     * See {ERC1155Pausable} and {Pausable-_unpause}.\n     *\n     * Requirements:\n     *\n     * - the caller must have the `PAUSER_ROLE`.\n     */\n    function unpause() public virtual {\n        require(hasRole(PAUSER_ROLE, _msgSender()), \"ERC1155PresetMinterPauser: must have pauser role to unpause\");\n        _unpause();\n    }\n\n    function _beforeTokenTransfer(\n        address operator,\n        address from,\n        address to,\n        uint256[] memory ids,\n        uint256[] memory amounts,\n        bytes memory data\n    )\n        internal virtual override(ERC1155, ERC1155Pausable)\n    {\n        super._beforeTokenTransfer(operator, from, to, ids, amounts, data);\n    }\n}\n",
  "sourcePath": "@openzeppelin/contracts/presets/ERC1155PresetMinterPauser.sol",
  "ast": {
    "absolutePath": "@openzeppelin/contracts/presets/ERC1155PresetMinterPauser.sol",
    "exportedSymbols": {
      "ERC1155PresetMinterPauser": [
        1118
      ]
    },
    "id": 1119,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 939,
        "literals": [
          "solidity",
          ">=",
          "0.6",
          ".0",
          "<",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "33:31:6"
      },
      {
        "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol",
        "file": "../access/AccessControl.sol",
        "id": 940,
        "nodeType": "ImportDirective",
        "scope": 1119,
        "sourceUnit": 286,
        "src": "66:37:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@openzeppelin/contracts/utils/Context.sol",
        "file": "../utils/Context.sol",
        "id": 941,
        "nodeType": "ImportDirective",
        "scope": 1119,
        "sourceUnit": 4842,
        "src": "104:30:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@openzeppelin/contracts/token/ERC1155/ERC1155.sol",
        "file": "../token/ERC1155/ERC1155.sol",
        "id": 942,
        "nodeType": "ImportDirective",
        "scope": 1119,
        "sourceUnit": 2263,
        "src": "135:38:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@openzeppelin/contracts/token/ERC1155/ERC1155Burnable.sol",
        "file": "../token/ERC1155/ERC1155Burnable.sol",
        "id": 943,
        "nodeType": "ImportDirective",
        "scope": 1119,
        "sourceUnit": 2332,
        "src": "174:46:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@openzeppelin/contracts/token/ERC1155/ERC1155Pausable.sol",
        "file": "../token/ERC1155/ERC1155Pausable.sol",
        "id": 944,
        "nodeType": "ImportDirective",
        "scope": 1119,
        "sourceUnit": 2431,
        "src": "221:46:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 946,
              "name": "Context",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4841,
              "src": "876:7:6",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Context_$4841",
                "typeString": "contract Context"
              }
            },
            "id": 947,
            "nodeType": "InheritanceSpecifier",
            "src": "876:7:6"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 948,
              "name": "AccessControl",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 285,
              "src": "885:13:6",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_AccessControl_$285",
                "typeString": "contract AccessControl"
              }
            },
            "id": 949,
            "nodeType": "InheritanceSpecifier",
            "src": "885:13:6"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 950,
              "name": "ERC1155Burnable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2331,
              "src": "900:15:6",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ERC1155Burnable_$2331",
                "typeString": "contract ERC1155Burnable"
              }
            },
            "id": 951,
            "nodeType": "InheritanceSpecifier",
            "src": "900:15:6"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 952,
              "name": "ERC1155Pausable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2430,
              "src": "917:15:6",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ERC1155Pausable_$2430",
                "typeString": "contract ERC1155Pausable"
              }
            },
            "id": 953,
            "nodeType": "InheritanceSpecifier",
            "src": "917:15:6"
          }
        ],
        "contractDependencies": [
          285,
          342,
          582,
          2262,
          2331,
          2430,
          2586,
          2601,
          4841,
          6035
        ],
        "contractKind": "contract",
        "documentation": {
          "id": 945,
          "nodeType": "StructuredDocumentation",
          "src": "269:568:6",
          "text": " @dev {ERC1155} token, including:\n  - ability for holders to burn (destroy) their tokens\n  - a minter role that allows for token minting (creation)\n  - a pauser role that allows to stop all token transfers\n This contract uses {AccessControl} to lock permissioned functions using the\n different roles - head to its documentation for details.\n The account that deploys the contract will be granted the minter and pauser\n roles, as well as the default admin role, which will let it grant both minter\n and pauser roles to other accounts."
        },
        "fullyImplemented": true,
        "id": 1118,
        "linearizedBaseContracts": [
          1118,
          2430,
          6035,
          2331,
          2262,
          2601,
          2586,
          342,
          582,
          285,
          4841
        ],
        "name": "ERC1155PresetMinterPauser",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "functionSelector": "d5391393",
            "id": 958,
            "mutability": "constant",
            "name": "MINTER_ROLE",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1118,
            "src": "939:62:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 954,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "939:7:6",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "4d494e5445525f524f4c45",
                  "id": 956,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "string",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "987:13:6",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_stringliteral_9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6",
                    "typeString": "literal_string \"MINTER_ROLE\""
                  },
                  "value": "MINTER_ROLE"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_stringliteral_9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6",
                    "typeString": "literal_string \"MINTER_ROLE\""
                  }
                ],
                "id": 955,
                "name": "keccak256",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": -8,
                "src": "977:9:6",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                  "typeString": "function (bytes memory) pure returns (bytes32)"
                }
              },
              "id": 957,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "977:24:6",
              "tryCall": false,
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "e63ab1e9",
            "id": 963,
            "mutability": "constant",
            "name": "PAUSER_ROLE",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1118,
            "src": "1007:62:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 959,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "1007:7:6",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "5041555345525f524f4c45",
                  "id": 961,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "string",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "1055:13:6",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_stringliteral_65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a",
                    "typeString": "literal_string \"PAUSER_ROLE\""
                  },
                  "value": "PAUSER_ROLE"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_stringliteral_65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a",
                    "typeString": "literal_string \"PAUSER_ROLE\""
                  }
                ],
                "id": 960,
                "name": "keccak256",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": -8,
                "src": "1045:9:6",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                  "typeString": "function (bytes memory) pure returns (bytes32)"
                }
              },
              "id": 962,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "1045:24:6",
              "tryCall": false,
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "body": {
              "id": 990,
              "nodeType": "Block",
              "src": "1266:156:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 973,
                        "name": "DEFAULT_ADMIN_ROLE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28,
                        "src": "1287:18:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 974,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4829,
                          "src": "1307:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                            "typeString": "function () view returns (address payable)"
                          }
                        },
                        "id": 975,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1307:12:6",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 972,
                      "name": "_setupRole",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 211,
                      "src": "1276:10:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 976,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1276:44:6",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 977,
                  "nodeType": "ExpressionStatement",
                  "src": "1276:44:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 979,
                        "name": "MINTER_ROLE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 958,
                        "src": "1342:11:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 980,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4829,
                          "src": "1355:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                            "typeString": "function () view returns (address payable)"
                          }
                        },
                        "id": 981,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1355:12:6",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 978,
                      "name": "_setupRole",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 211,
                      "src": "1331:10:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 982,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1331:37:6",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 983,
                  "nodeType": "ExpressionStatement",
                  "src": "1331:37:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 985,
                        "name": "PAUSER_ROLE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 963,
                        "src": "1389:11:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 986,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4829,
                          "src": "1402:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                            "typeString": "function () view returns (address payable)"
                          }
                        },
                        "id": 987,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1402:12:6",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 984,
                      "name": "_setupRole",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 211,
                      "src": "1378:10:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 988,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1378:37:6",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 989,
                  "nodeType": "ExpressionStatement",
                  "src": "1378:37:6"
                }
              ]
            },
            "documentation": {
              "id": 964,
              "nodeType": "StructuredDocumentation",
              "src": "1076:134:6",
              "text": " @dev Grants `DEFAULT_ADMIN_ROLE`, `MINTER_ROLE`, and `PAUSER_ROLE` to the account that\n deploys the contract."
            },
            "id": 991,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 969,
                    "name": "uri",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 966,
                    "src": "1261:3:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  }
                ],
                "id": 970,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 968,
                  "name": "ERC1155",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2262,
                  "src": "1253:7:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_ERC1155_$2262_$",
                    "typeString": "type(contract ERC1155)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1253:12:6"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 967,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 966,
                  "mutability": "mutable",
                  "name": "uri",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 991,
                  "src": "1227:17:6",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 965,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1227:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1226:19:6"
            },
            "returnParameters": {
              "id": 971,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1266:0:6"
            },
            "scope": 1118,
            "src": "1215:207:6",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1019,
              "nodeType": "Block",
              "src": "1721:158:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1005,
                            "name": "MINTER_ROLE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 958,
                            "src": "1747:11:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 1006,
                              "name": "_msgSender",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4829,
                              "src": "1760:10:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                "typeString": "function () view returns (address payable)"
                              }
                            },
                            "id": 1007,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1760:12:6",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 1004,
                          "name": "hasRole",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 74,
                          "src": "1739:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$",
                            "typeString": "function (bytes32,address) view returns (bool)"
                          }
                        },
                        "id": 1008,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1739:34:6",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "455243313135355072657365744d696e7465725061757365723a206d7573742068617665206d696e74657220726f6c6520746f206d696e74",
                        "id": 1009,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1775:58:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_8955910be8371dda281e80fa38d092164791ccbd984aaa07b76276bef2682e9c",
                          "typeString": "literal_string \"ERC1155PresetMinterPauser: must have minter role to mint\""
                        },
                        "value": "ERC1155PresetMinterPauser: must have minter role to mint"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_8955910be8371dda281e80fa38d092164791ccbd984aaa07b76276bef2682e9c",
                          "typeString": "literal_string \"ERC1155PresetMinterPauser: must have minter role to mint\""
                        }
                      ],
                      "id": 1003,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "1731:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1010,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1731:103:6",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1011,
                  "nodeType": "ExpressionStatement",
                  "src": "1731:103:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1013,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 994,
                        "src": "1851:2:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1014,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 996,
                        "src": "1855:2:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1015,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 998,
                        "src": "1859:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1016,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1000,
                        "src": "1867:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1012,
                      "name": "_mint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1810,
                      "src": "1845:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,uint256,uint256,bytes memory)"
                      }
                    },
                    "id": 1017,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1845:27:6",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1018,
                  "nodeType": "ExpressionStatement",
                  "src": "1845:27:6"
                }
              ]
            },
            "documentation": {
              "id": 992,
              "nodeType": "StructuredDocumentation",
              "src": "1428:200:6",
              "text": " @dev Creates `amount` new tokens for `to`, of token type `id`.\n See {ERC1155-_mint}.\n Requirements:\n - the caller must have the `MINTER_ROLE`."
            },
            "functionSelector": "731133e9",
            "id": 1020,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "mint",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1001,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 994,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1020,
                  "src": "1647:10:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 993,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1647:7:6",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 996,
                  "mutability": "mutable",
                  "name": "id",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1020,
                  "src": "1659:10:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 995,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1659:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 998,
                  "mutability": "mutable",
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1020,
                  "src": "1671:14:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 997,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1671:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1000,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1020,
                  "src": "1687:17:6",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 999,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1687:5:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1646:59:6"
            },
            "returnParameters": {
              "id": 1002,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1721:0:6"
            },
            "scope": 1118,
            "src": "1633:246:6",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1050,
              "nodeType": "Block",
              "src": "2094:165:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1036,
                            "name": "MINTER_ROLE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 958,
                            "src": "2120:11:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 1037,
                              "name": "_msgSender",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4829,
                              "src": "2133:10:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                "typeString": "function () view returns (address payable)"
                              }
                            },
                            "id": 1038,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2133:12:6",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 1035,
                          "name": "hasRole",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 74,
                          "src": "2112:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$",
                            "typeString": "function (bytes32,address) view returns (bool)"
                          }
                        },
                        "id": 1039,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2112:34:6",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "455243313135355072657365744d696e7465725061757365723a206d7573742068617665206d696e74657220726f6c6520746f206d696e74",
                        "id": 1040,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2148:58:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_8955910be8371dda281e80fa38d092164791ccbd984aaa07b76276bef2682e9c",
                          "typeString": "literal_string \"ERC1155PresetMinterPauser: must have minter role to mint\""
                        },
                        "value": "ERC1155PresetMinterPauser: must have minter role to mint"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_8955910be8371dda281e80fa38d092164791ccbd984aaa07b76276bef2682e9c",
                          "typeString": "literal_string \"ERC1155PresetMinterPauser: must have minter role to mint\""
                        }
                      ],
                      "id": 1034,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "2104:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1041,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2104:103:6",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1042,
                  "nodeType": "ExpressionStatement",
                  "src": "2104:103:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1044,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1023,
                        "src": "2229:2:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1045,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1026,
                        "src": "2233:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1046,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1029,
                        "src": "2238:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1047,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1031,
                        "src": "2247:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1043,
                      "name": "_mintBatch",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1918,
                      "src": "2218:10:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,uint256[] memory,uint256[] memory,bytes memory)"
                      }
                    },
                    "id": 1048,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2218:34:6",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1049,
                  "nodeType": "ExpressionStatement",
                  "src": "2218:34:6"
                }
              ]
            },
            "documentation": {
              "id": 1021,
              "nodeType": "StructuredDocumentation",
              "src": "1885:91:6",
              "text": " @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] variant of {mint}."
            },
            "functionSelector": "1f7fdffa",
            "id": 1051,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "mintBatch",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1032,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1023,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1051,
                  "src": "2000:10:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1022,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2000:7:6",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1026,
                  "mutability": "mutable",
                  "name": "ids",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1051,
                  "src": "2012:20:6",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1024,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "2012:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1025,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2012:9:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1029,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1051,
                  "src": "2034:24:6",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1027,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "2034:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1028,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2034:9:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1031,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1051,
                  "src": "2060:17:6",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 1030,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2060:5:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1999:79:6"
            },
            "returnParameters": {
              "id": 1033,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2094:0:6"
            },
            "scope": 1118,
            "src": "1981:278:6",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1067,
              "nodeType": "Block",
              "src": "2496:139:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1057,
                            "name": "PAUSER_ROLE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 963,
                            "src": "2522:11:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 1058,
                              "name": "_msgSender",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4829,
                              "src": "2535:10:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                "typeString": "function () view returns (address payable)"
                              }
                            },
                            "id": 1059,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2535:12:6",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 1056,
                          "name": "hasRole",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 74,
                          "src": "2514:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$",
                            "typeString": "function (bytes32,address) view returns (bool)"
                          }
                        },
                        "id": 1060,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2514:34:6",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "455243313135355072657365744d696e7465725061757365723a206d75737420686176652070617573657220726f6c6520746f207061757365",
                        "id": 1061,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2550:59:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d5053a301adec69bf5c7c3782556a354b14090e41fa7ca93c4de3863fd6a98b9",
                          "typeString": "literal_string \"ERC1155PresetMinterPauser: must have pauser role to pause\""
                        },
                        "value": "ERC1155PresetMinterPauser: must have pauser role to pause"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d5053a301adec69bf5c7c3782556a354b14090e41fa7ca93c4de3863fd6a98b9",
                          "typeString": "literal_string \"ERC1155PresetMinterPauser: must have pauser role to pause\""
                        }
                      ],
                      "id": 1055,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "2506:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1062,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2506:104:6",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1063,
                  "nodeType": "ExpressionStatement",
                  "src": "2506:104:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 1064,
                      "name": "_pause",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6018,
                      "src": "2620:6:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 1065,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2620:8:6",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1066,
                  "nodeType": "ExpressionStatement",
                  "src": "2620:8:6"
                }
              ]
            },
            "documentation": {
              "id": 1052,
              "nodeType": "StructuredDocumentation",
              "src": "2265:194:6",
              "text": " @dev Pauses all token transfers.\n See {ERC1155Pausable} and {Pausable-_pause}.\n Requirements:\n - the caller must have the `PAUSER_ROLE`."
            },
            "functionSelector": "8456cb59",
            "id": 1068,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "pause",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1053,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2478:2:6"
            },
            "returnParameters": {
              "id": 1054,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2496:0:6"
            },
            "scope": 1118,
            "src": "2464:171:6",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1084,
              "nodeType": "Block",
              "src": "2878:143:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1074,
                            "name": "PAUSER_ROLE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 963,
                            "src": "2904:11:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 1075,
                              "name": "_msgSender",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4829,
                              "src": "2917:10:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                "typeString": "function () view returns (address payable)"
                              }
                            },
                            "id": 1076,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2917:12:6",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 1073,
                          "name": "hasRole",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 74,
                          "src": "2896:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$",
                            "typeString": "function (bytes32,address) view returns (bool)"
                          }
                        },
                        "id": 1077,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2896:34:6",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "455243313135355072657365744d696e7465725061757365723a206d75737420686176652070617573657220726f6c6520746f20756e7061757365",
                        "id": 1078,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2932:61:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_be510562063387b7714478be5eff01a8c39efbb1b76d9be224d34aac440c9e31",
                          "typeString": "literal_string \"ERC1155PresetMinterPauser: must have pauser role to unpause\""
                        },
                        "value": "ERC1155PresetMinterPauser: must have pauser role to unpause"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_be510562063387b7714478be5eff01a8c39efbb1b76d9be224d34aac440c9e31",
                          "typeString": "literal_string \"ERC1155PresetMinterPauser: must have pauser role to unpause\""
                        }
                      ],
                      "id": 1072,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "2888:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1079,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2888:106:6",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1080,
                  "nodeType": "ExpressionStatement",
                  "src": "2888:106:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 1081,
                      "name": "_unpause",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6034,
                      "src": "3004:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 1082,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3004:10:6",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1083,
                  "nodeType": "ExpressionStatement",
                  "src": "3004:10:6"
                }
              ]
            },
            "documentation": {
              "id": 1069,
              "nodeType": "StructuredDocumentation",
              "src": "2641:198:6",
              "text": " @dev Unpauses all token transfers.\n See {ERC1155Pausable} and {Pausable-_unpause}.\n Requirements:\n - the caller must have the `PAUSER_ROLE`."
            },
            "functionSelector": "3f4ba83a",
            "id": 1085,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "unpause",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1070,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2860:2:6"
            },
            "returnParameters": {
              "id": 1071,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2878:0:6"
            },
            "scope": 1118,
            "src": "2844:177:6",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              2101,
              2429
            ],
            "body": {
              "id": 1116,
              "nodeType": "Block",
              "src": "3286:83:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1108,
                        "name": "operator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1087,
                        "src": "3323:8:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1109,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1089,
                        "src": "3333:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1110,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1091,
                        "src": "3339:2:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1111,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1094,
                        "src": "3343:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1112,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1097,
                        "src": "3348:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1113,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1099,
                        "src": "3357:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1105,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -25,
                        "src": "3296:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_super$_ERC1155PresetMinterPauser_$1118",
                          "typeString": "contract super ERC1155PresetMinterPauser"
                        }
                      },
                      "id": 1107,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "_beforeTokenTransfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2429,
                      "src": "3296:26:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,address,address,uint256[] memory,uint256[] memory,bytes memory)"
                      }
                    },
                    "id": 1114,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3296:66:6",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1115,
                  "nodeType": "ExpressionStatement",
                  "src": "3296:66:6"
                }
              ]
            },
            "documentation": null,
            "id": 1117,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_beforeTokenTransfer",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 1103,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "contractScope": null,
                  "id": 1101,
                  "name": "ERC1155",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 2262,
                  "src": "3256:7:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ERC1155_$2262",
                    "typeString": "contract ERC1155"
                  }
                },
                {
                  "contractScope": null,
                  "id": 1102,
                  "name": "ERC1155Pausable",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 2430,
                  "src": "3265:15:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ERC1155Pausable_$2430",
                    "typeString": "contract ERC1155Pausable"
                  }
                }
              ],
              "src": "3247:34:6"
            },
            "parameters": {
              "id": 1100,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1087,
                  "mutability": "mutable",
                  "name": "operator",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1117,
                  "src": "3066:16:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1086,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3066:7:6",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1089,
                  "mutability": "mutable",
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1117,
                  "src": "3092:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1088,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3092:7:6",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1091,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1117,
                  "src": "3114:10:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1090,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3114:7:6",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1094,
                  "mutability": "mutable",
                  "name": "ids",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1117,
                  "src": "3134:20:6",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1092,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "3134:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1093,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "3134:9:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1097,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1117,
                  "src": "3164:24:6",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1095,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "3164:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1096,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "3164:9:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1099,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1117,
                  "src": "3198:17:6",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 1098,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "3198:5:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3056:165:6"
            },
            "returnParameters": {
              "id": 1104,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3286:0:6"
            },
            "scope": 1118,
            "src": "3027:342:6",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          }
        ],
        "scope": 1119,
        "src": "838:2533:6"
      }
    ],
    "src": "33:3339:6"
  },
  "legacyAST": {
    "attributes": {
      "absolutePath": "@openzeppelin/contracts/presets/ERC1155PresetMinterPauser.sol",
      "exportedSymbols": {
        "ERC1155PresetMinterPauser": [
          1118
        ]
      },
      "license": "MIT"
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            ">=",
            "0.6",
            ".0",
            "<",
            "0.8",
            ".0"
          ]
        },
        "id": 939,
        "name": "PragmaDirective",
        "src": "33:31:6"
      },
      {
        "attributes": {
          "SourceUnit": 286,
          "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol",
          "file": "../access/AccessControl.sol",
          "scope": 1119,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 940,
        "name": "ImportDirective",
        "src": "66:37:6"
      },
      {
        "attributes": {
          "SourceUnit": 4842,
          "absolutePath": "@openzeppelin/contracts/utils/Context.sol",
          "file": "../utils/Context.sol",
          "scope": 1119,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 941,
        "name": "ImportDirective",
        "src": "104:30:6"
      },
      {
        "attributes": {
          "SourceUnit": 2263,
          "absolutePath": "@openzeppelin/contracts/token/ERC1155/ERC1155.sol",
          "file": "../token/ERC1155/ERC1155.sol",
          "scope": 1119,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 942,
        "name": "ImportDirective",
        "src": "135:38:6"
      },
      {
        "attributes": {
          "SourceUnit": 2332,
          "absolutePath": "@openzeppelin/contracts/token/ERC1155/ERC1155Burnable.sol",
          "file": "../token/ERC1155/ERC1155Burnable.sol",
          "scope": 1119,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 943,
        "name": "ImportDirective",
        "src": "174:46:6"
      },
      {
        "attributes": {
          "SourceUnit": 2431,
          "absolutePath": "@openzeppelin/contracts/token/ERC1155/ERC1155Pausable.sol",
          "file": "../token/ERC1155/ERC1155Pausable.sol",
          "scope": 1119,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 944,
        "name": "ImportDirective",
        "src": "221:46:6"
      },
      {
        "attributes": {
          "abstract": false,
          "contractDependencies": [
            285,
            342,
            582,
            2262,
            2331,
            2430,
            2586,
            2601,
            4841,
            6035
          ],
          "contractKind": "contract",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            1118,
            2430,
            6035,
            2331,
            2262,
            2601,
            2586,
            342,
            582,
            285,
            4841
          ],
          "name": "ERC1155PresetMinterPauser",
          "scope": 1119
        },
        "children": [
          {
            "attributes": {
              "text": " @dev {ERC1155} token, including:\n  - ability for holders to burn (destroy) their tokens\n  - a minter role that allows for token minting (creation)\n  - a pauser role that allows to stop all token transfers\n This contract uses {AccessControl} to lock permissioned functions using the\n different roles - head to its documentation for details.\n The account that deploys the contract will be granted the minter and pauser\n roles, as well as the default admin role, which will let it grant both minter\n and pauser roles to other accounts."
            },
            "id": 945,
            "name": "StructuredDocumentation",
            "src": "269:568:6"
          },
          {
            "attributes": {
              "arguments": null
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "Context",
                  "referencedDeclaration": 4841,
                  "type": "contract Context"
                },
                "id": 946,
                "name": "UserDefinedTypeName",
                "src": "876:7:6"
              }
            ],
            "id": 947,
            "name": "InheritanceSpecifier",
            "src": "876:7:6"
          },
          {
            "attributes": {
              "arguments": null
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "AccessControl",
                  "referencedDeclaration": 285,
                  "type": "contract AccessControl"
                },
                "id": 948,
                "name": "UserDefinedTypeName",
                "src": "885:13:6"
              }
            ],
            "id": 949,
            "name": "InheritanceSpecifier",
            "src": "885:13:6"
          },
          {
            "attributes": {
              "arguments": null
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "ERC1155Burnable",
                  "referencedDeclaration": 2331,
                  "type": "contract ERC1155Burnable"
                },
                "id": 950,
                "name": "UserDefinedTypeName",
                "src": "900:15:6"
              }
            ],
            "id": 951,
            "name": "InheritanceSpecifier",
            "src": "900:15:6"
          },
          {
            "attributes": {
              "arguments": null
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "ERC1155Pausable",
                  "referencedDeclaration": 2430,
                  "type": "contract ERC1155Pausable"
                },
                "id": 952,
                "name": "UserDefinedTypeName",
                "src": "917:15:6"
              }
            ],
            "id": 953,
            "name": "InheritanceSpecifier",
            "src": "917:15:6"
          },
          {
            "attributes": {
              "constant": true,
              "functionSelector": "d5391393",
              "mutability": "constant",
              "name": "MINTER_ROLE",
              "overrides": null,
              "scope": 1118,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "bytes32",
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "bytes32",
                  "type": "bytes32"
                },
                "id": 954,
                "name": "ElementaryTypeName",
                "src": "939:7:6"
              },
              {
                "attributes": {
                  "argumentTypes": null,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "isStructConstructorCall": false,
                  "lValueRequested": false,
                  "names": [
                    null
                  ],
                  "tryCall": false,
                  "type": "bytes32",
                  "type_conversion": false
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6",
                          "typeString": "literal_string \"MINTER_ROLE\""
                        }
                      ],
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": -8,
                      "type": "function (bytes memory) pure returns (bytes32)",
                      "value": "keccak256"
                    },
                    "id": 955,
                    "name": "Identifier",
                    "src": "977:9:6"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "4d494e5445525f524f4c45",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"MINTER_ROLE\"",
                      "value": "MINTER_ROLE"
                    },
                    "id": 956,
                    "name": "Literal",
                    "src": "987:13:6"
                  }
                ],
                "id": 957,
                "name": "FunctionCall",
                "src": "977:24:6"
              }
            ],
            "id": 958,
            "name": "VariableDeclaration",
            "src": "939:62:6"
          },
          {
            "attributes": {
              "constant": true,
              "functionSelector": "e63ab1e9",
              "mutability": "constant",
              "name": "PAUSER_ROLE",
              "overrides": null,
              "scope": 1118,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "bytes32",
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "bytes32",
                  "type": "bytes32"
                },
                "id": 959,
                "name": "ElementaryTypeName",
                "src": "1007:7:6"
              },
              {
                "attributes": {
                  "argumentTypes": null,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "isStructConstructorCall": false,
                  "lValueRequested": false,
                  "names": [
                    null
                  ],
                  "tryCall": false,
                  "type": "bytes32",
                  "type_conversion": false
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a",
                          "typeString": "literal_string \"PAUSER_ROLE\""
                        }
                      ],
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": -8,
                      "type": "function (bytes memory) pure returns (bytes32)",
                      "value": "keccak256"
                    },
                    "id": 960,
                    "name": "Identifier",
                    "src": "1045:9:6"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "5041555345525f524f4c45",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"PAUSER_ROLE\"",
                      "value": "PAUSER_ROLE"
                    },
                    "id": 961,
                    "name": "Literal",
                    "src": "1055:13:6"
                  }
                ],
                "id": 962,
                "name": "FunctionCall",
                "src": "1045:24:6"
              }
            ],
            "id": 963,
            "name": "VariableDeclaration",
            "src": "1007:62:6"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": true,
              "kind": "constructor",
              "name": "",
              "overrides": null,
              "scope": 1118,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Grants `DEFAULT_ADMIN_ROLE`, `MINTER_ROLE`, and `PAUSER_ROLE` to the account that\n deploys the contract."
                },
                "id": 964,
                "name": "StructuredDocumentation",
                "src": "1076:134:6"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "uri",
                      "overrides": null,
                      "scope": 991,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "string",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string"
                        },
                        "id": 965,
                        "name": "ElementaryTypeName",
                        "src": "1227:6:6"
                      }
                    ],
                    "id": 966,
                    "name": "VariableDeclaration",
                    "src": "1227:17:6"
                  }
                ],
                "id": 967,
                "name": "ParameterList",
                "src": "1226:19:6"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 971,
                "name": "ParameterList",
                "src": "1266:0:6"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 2262,
                      "type": "type(contract ERC1155)",
                      "value": "ERC1155"
                    },
                    "id": 968,
                    "name": "Identifier",
                    "src": "1253:7:6"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 966,
                      "type": "string memory",
                      "value": "uri"
                    },
                    "id": 969,
                    "name": "Identifier",
                    "src": "1261:3:6"
                  }
                ],
                "id": 970,
                "name": "ModifierInvocation",
                "src": "1253:12:6"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_address_payable",
                                  "typeString": "address payable"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 211,
                              "type": "function (bytes32,address)",
                              "value": "_setupRole"
                            },
                            "id": 972,
                            "name": "Identifier",
                            "src": "1276:10:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 28,
                              "type": "bytes32",
                              "value": "DEFAULT_ADMIN_ROLE"
                            },
                            "id": 973,
                            "name": "Identifier",
                            "src": "1287:18:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "address payable",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4829,
                                  "type": "function () view returns (address payable)",
                                  "value": "_msgSender"
                                },
                                "id": 974,
                                "name": "Identifier",
                                "src": "1307:10:6"
                              }
                            ],
                            "id": 975,
                            "name": "FunctionCall",
                            "src": "1307:12:6"
                          }
                        ],
                        "id": 976,
                        "name": "FunctionCall",
                        "src": "1276:44:6"
                      }
                    ],
                    "id": 977,
                    "name": "ExpressionStatement",
                    "src": "1276:44:6"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_address_payable",
                                  "typeString": "address payable"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 211,
                              "type": "function (bytes32,address)",
                              "value": "_setupRole"
                            },
                            "id": 978,
                            "name": "Identifier",
                            "src": "1331:10:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 958,
                              "type": "bytes32",
                              "value": "MINTER_ROLE"
                            },
                            "id": 979,
                            "name": "Identifier",
                            "src": "1342:11:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "address payable",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4829,
                                  "type": "function () view returns (address payable)",
                                  "value": "_msgSender"
                                },
                                "id": 980,
                                "name": "Identifier",
                                "src": "1355:10:6"
                              }
                            ],
                            "id": 981,
                            "name": "FunctionCall",
                            "src": "1355:12:6"
                          }
                        ],
                        "id": 982,
                        "name": "FunctionCall",
                        "src": "1331:37:6"
                      }
                    ],
                    "id": 983,
                    "name": "ExpressionStatement",
                    "src": "1331:37:6"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_address_payable",
                                  "typeString": "address payable"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 211,
                              "type": "function (bytes32,address)",
                              "value": "_setupRole"
                            },
                            "id": 984,
                            "name": "Identifier",
                            "src": "1378:10:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 963,
                              "type": "bytes32",
                              "value": "PAUSER_ROLE"
                            },
                            "id": 985,
                            "name": "Identifier",
                            "src": "1389:11:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "address payable",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4829,
                                  "type": "function () view returns (address payable)",
                                  "value": "_msgSender"
                                },
                                "id": 986,
                                "name": "Identifier",
                                "src": "1402:10:6"
                              }
                            ],
                            "id": 987,
                            "name": "FunctionCall",
                            "src": "1402:12:6"
                          }
                        ],
                        "id": 988,
                        "name": "FunctionCall",
                        "src": "1378:37:6"
                      }
                    ],
                    "id": 989,
                    "name": "ExpressionStatement",
                    "src": "1378:37:6"
                  }
                ],
                "id": 990,
                "name": "Block",
                "src": "1266:156:6"
              }
            ],
            "id": 991,
            "name": "FunctionDefinition",
            "src": "1215:207:6"
          },
          {
            "attributes": {
              "functionSelector": "731133e9",
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "mint",
              "overrides": null,
              "scope": 1118,
              "stateMutability": "nonpayable",
              "virtual": true,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Creates `amount` new tokens for `to`, of token type `id`.\n See {ERC1155-_mint}.\n Requirements:\n - the caller must have the `MINTER_ROLE`."
                },
                "id": 992,
                "name": "StructuredDocumentation",
                "src": "1428:200:6"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "to",
                      "overrides": null,
                      "scope": 1020,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 993,
                        "name": "ElementaryTypeName",
                        "src": "1647:7:6"
                      }
                    ],
                    "id": 994,
                    "name": "VariableDeclaration",
                    "src": "1647:10:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "id",
                      "overrides": null,
                      "scope": 1020,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 995,
                        "name": "ElementaryTypeName",
                        "src": "1659:7:6"
                      }
                    ],
                    "id": 996,
                    "name": "VariableDeclaration",
                    "src": "1659:10:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "amount",
                      "overrides": null,
                      "scope": 1020,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 997,
                        "name": "ElementaryTypeName",
                        "src": "1671:7:6"
                      }
                    ],
                    "id": 998,
                    "name": "VariableDeclaration",
                    "src": "1671:14:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "data",
                      "overrides": null,
                      "scope": 1020,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "bytes",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 999,
                        "name": "ElementaryTypeName",
                        "src": "1687:5:6"
                      }
                    ],
                    "id": 1000,
                    "name": "VariableDeclaration",
                    "src": "1687:17:6"
                  }
                ],
                "id": 1001,
                "name": "ParameterList",
                "src": "1646:59:6"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1002,
                "name": "ParameterList",
                "src": "1721:0:6"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_8955910be8371dda281e80fa38d092164791ccbd984aaa07b76276bef2682e9c",
                                  "typeString": "literal_string \"ERC1155PresetMinterPauser: must have minter role to mint\""
                                }
                              ],
                              "overloadedDeclarations": [
                                -18,
                                -18
                              ],
                              "referencedDeclaration": -18,
                              "type": "function (bool,string memory) pure",
                              "value": "require"
                            },
                            "id": 1003,
                            "name": "Identifier",
                            "src": "1731:7:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "bool",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 74,
                                  "type": "function (bytes32,address) view returns (bool)",
                                  "value": "hasRole"
                                },
                                "id": 1004,
                                "name": "Identifier",
                                "src": "1739:7:6"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 958,
                                  "type": "bytes32",
                                  "value": "MINTER_ROLE"
                                },
                                "id": 1005,
                                "name": "Identifier",
                                "src": "1747:11:6"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "address payable",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        null
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4829,
                                      "type": "function () view returns (address payable)",
                                      "value": "_msgSender"
                                    },
                                    "id": 1006,
                                    "name": "Identifier",
                                    "src": "1760:10:6"
                                  }
                                ],
                                "id": 1007,
                                "name": "FunctionCall",
                                "src": "1760:12:6"
                              }
                            ],
                            "id": 1008,
                            "name": "FunctionCall",
                            "src": "1739:34:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "455243313135355072657365744d696e7465725061757365723a206d7573742068617665206d696e74657220726f6c6520746f206d696e74",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "string",
                              "type": "literal_string \"ERC1155PresetMinterPauser: must have minter role to mint\"",
                              "value": "ERC1155PresetMinterPauser: must have minter role to mint"
                            },
                            "id": 1009,
                            "name": "Literal",
                            "src": "1775:58:6"
                          }
                        ],
                        "id": 1010,
                        "name": "FunctionCall",
                        "src": "1731:103:6"
                      }
                    ],
                    "id": 1011,
                    "name": "ExpressionStatement",
                    "src": "1731:103:6"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 1810,
                              "type": "function (address,uint256,uint256,bytes memory)",
                              "value": "_mint"
                            },
                            "id": 1012,
                            "name": "Identifier",
                            "src": "1845:5:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 994,
                              "type": "address",
                              "value": "to"
                            },
                            "id": 1013,
                            "name": "Identifier",
                            "src": "1851:2:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 996,
                              "type": "uint256",
                              "value": "id"
                            },
                            "id": 1014,
                            "name": "Identifier",
                            "src": "1855:2:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 998,
                              "type": "uint256",
                              "value": "amount"
                            },
                            "id": 1015,
                            "name": "Identifier",
                            "src": "1859:6:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 1000,
                              "type": "bytes memory",
                              "value": "data"
                            },
                            "id": 1016,
                            "name": "Identifier",
                            "src": "1867:4:6"
                          }
                        ],
                        "id": 1017,
                        "name": "FunctionCall",
                        "src": "1845:27:6"
                      }
                    ],
                    "id": 1018,
                    "name": "ExpressionStatement",
                    "src": "1845:27:6"
                  }
                ],
                "id": 1019,
                "name": "Block",
                "src": "1721:158:6"
              }
            ],
            "id": 1020,
            "name": "FunctionDefinition",
            "src": "1633:246:6"
          },
          {
            "attributes": {
              "functionSelector": "1f7fdffa",
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "mintBatch",
              "overrides": null,
              "scope": 1118,
              "stateMutability": "nonpayable",
              "virtual": true,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] variant of {mint}."
                },
                "id": 1021,
                "name": "StructuredDocumentation",
                "src": "1885:91:6"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "to",
                      "overrides": null,
                      "scope": 1051,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1022,
                        "name": "ElementaryTypeName",
                        "src": "2000:7:6"
                      }
                    ],
                    "id": 1023,
                    "name": "VariableDeclaration",
                    "src": "2000:10:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "ids",
                      "overrides": null,
                      "scope": 1051,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "uint256[]",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "uint256[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 1024,
                            "name": "ElementaryTypeName",
                            "src": "2012:7:6"
                          }
                        ],
                        "id": 1025,
                        "name": "ArrayTypeName",
                        "src": "2012:9:6"
                      }
                    ],
                    "id": 1026,
                    "name": "VariableDeclaration",
                    "src": "2012:20:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "amounts",
                      "overrides": null,
                      "scope": 1051,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "uint256[]",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "uint256[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 1027,
                            "name": "ElementaryTypeName",
                            "src": "2034:7:6"
                          }
                        ],
                        "id": 1028,
                        "name": "ArrayTypeName",
                        "src": "2034:9:6"
                      }
                    ],
                    "id": 1029,
                    "name": "VariableDeclaration",
                    "src": "2034:24:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "data",
                      "overrides": null,
                      "scope": 1051,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "bytes",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 1030,
                        "name": "ElementaryTypeName",
                        "src": "2060:5:6"
                      }
                    ],
                    "id": 1031,
                    "name": "VariableDeclaration",
                    "src": "2060:17:6"
                  }
                ],
                "id": 1032,
                "name": "ParameterList",
                "src": "1999:79:6"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1033,
                "name": "ParameterList",
                "src": "2094:0:6"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_8955910be8371dda281e80fa38d092164791ccbd984aaa07b76276bef2682e9c",
                                  "typeString": "literal_string \"ERC1155PresetMinterPauser: must have minter role to mint\""
                                }
                              ],
                              "overloadedDeclarations": [
                                -18,
                                -18
                              ],
                              "referencedDeclaration": -18,
                              "type": "function (bool,string memory) pure",
                              "value": "require"
                            },
                            "id": 1034,
                            "name": "Identifier",
                            "src": "2104:7:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "bool",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 74,
                                  "type": "function (bytes32,address) view returns (bool)",
                                  "value": "hasRole"
                                },
                                "id": 1035,
                                "name": "Identifier",
                                "src": "2112:7:6"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 958,
                                  "type": "bytes32",
                                  "value": "MINTER_ROLE"
                                },
                                "id": 1036,
                                "name": "Identifier",
                                "src": "2120:11:6"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "address payable",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        null
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4829,
                                      "type": "function () view returns (address payable)",
                                      "value": "_msgSender"
                                    },
                                    "id": 1037,
                                    "name": "Identifier",
                                    "src": "2133:10:6"
                                  }
                                ],
                                "id": 1038,
                                "name": "FunctionCall",
                                "src": "2133:12:6"
                              }
                            ],
                            "id": 1039,
                            "name": "FunctionCall",
                            "src": "2112:34:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "455243313135355072657365744d696e7465725061757365723a206d7573742068617665206d696e74657220726f6c6520746f206d696e74",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "string",
                              "type": "literal_string \"ERC1155PresetMinterPauser: must have minter role to mint\"",
                              "value": "ERC1155PresetMinterPauser: must have minter role to mint"
                            },
                            "id": 1040,
                            "name": "Literal",
                            "src": "2148:58:6"
                          }
                        ],
                        "id": 1041,
                        "name": "FunctionCall",
                        "src": "2104:103:6"
                      }
                    ],
                    "id": 1042,
                    "name": "ExpressionStatement",
                    "src": "2104:103:6"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                },
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 1918,
                              "type": "function (address,uint256[] memory,uint256[] memory,bytes memory)",
                              "value": "_mintBatch"
                            },
                            "id": 1043,
                            "name": "Identifier",
                            "src": "2218:10:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 1023,
                              "type": "address",
                              "value": "to"
                            },
                            "id": 1044,
                            "name": "Identifier",
                            "src": "2229:2:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 1026,
                              "type": "uint256[] memory",
                              "value": "ids"
                            },
                            "id": 1045,
                            "name": "Identifier",
                            "src": "2233:3:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 1029,
                              "type": "uint256[] memory",
                              "value": "amounts"
                            },
                            "id": 1046,
                            "name": "Identifier",
                            "src": "2238:7:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 1031,
                              "type": "bytes memory",
                              "value": "data"
                            },
                            "id": 1047,
                            "name": "Identifier",
                            "src": "2247:4:6"
                          }
                        ],
                        "id": 1048,
                        "name": "FunctionCall",
                        "src": "2218:34:6"
                      }
                    ],
                    "id": 1049,
                    "name": "ExpressionStatement",
                    "src": "2218:34:6"
                  }
                ],
                "id": 1050,
                "name": "Block",
                "src": "2094:165:6"
              }
            ],
            "id": 1051,
            "name": "FunctionDefinition",
            "src": "1981:278:6"
          },
          {
            "attributes": {
              "functionSelector": "8456cb59",
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "pause",
              "overrides": null,
              "scope": 1118,
              "stateMutability": "nonpayable",
              "virtual": true,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Pauses all token transfers.\n See {ERC1155Pausable} and {Pausable-_pause}.\n Requirements:\n - the caller must have the `PAUSER_ROLE`."
                },
                "id": 1052,
                "name": "StructuredDocumentation",
                "src": "2265:194:6"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1053,
                "name": "ParameterList",
                "src": "2478:2:6"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1054,
                "name": "ParameterList",
                "src": "2496:0:6"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_d5053a301adec69bf5c7c3782556a354b14090e41fa7ca93c4de3863fd6a98b9",
                                  "typeString": "literal_string \"ERC1155PresetMinterPauser: must have pauser role to pause\""
                                }
                              ],
                              "overloadedDeclarations": [
                                -18,
                                -18
                              ],
                              "referencedDeclaration": -18,
                              "type": "function (bool,string memory) pure",
                              "value": "require"
                            },
                            "id": 1055,
                            "name": "Identifier",
                            "src": "2506:7:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "bool",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 74,
                                  "type": "function (bytes32,address) view returns (bool)",
                                  "value": "hasRole"
                                },
                                "id": 1056,
                                "name": "Identifier",
                                "src": "2514:7:6"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 963,
                                  "type": "bytes32",
                                  "value": "PAUSER_ROLE"
                                },
                                "id": 1057,
                                "name": "Identifier",
                                "src": "2522:11:6"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "address payable",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        null
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4829,
                                      "type": "function () view returns (address payable)",
                                      "value": "_msgSender"
                                    },
                                    "id": 1058,
                                    "name": "Identifier",
                                    "src": "2535:10:6"
                                  }
                                ],
                                "id": 1059,
                                "name": "FunctionCall",
                                "src": "2535:12:6"
                              }
                            ],
                            "id": 1060,
                            "name": "FunctionCall",
                            "src": "2514:34:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "455243313135355072657365744d696e7465725061757365723a206d75737420686176652070617573657220726f6c6520746f207061757365",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "string",
                              "type": "literal_string \"ERC1155PresetMinterPauser: must have pauser role to pause\"",
                              "value": "ERC1155PresetMinterPauser: must have pauser role to pause"
                            },
                            "id": 1061,
                            "name": "Literal",
                            "src": "2550:59:6"
                          }
                        ],
                        "id": 1062,
                        "name": "FunctionCall",
                        "src": "2506:104:6"
                      }
                    ],
                    "id": 1063,
                    "name": "ExpressionStatement",
                    "src": "2506:104:6"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "arguments": [
                            null
                          ],
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                null
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6018,
                              "type": "function ()",
                              "value": "_pause"
                            },
                            "id": 1064,
                            "name": "Identifier",
                            "src": "2620:6:6"
                          }
                        ],
                        "id": 1065,
                        "name": "FunctionCall",
                        "src": "2620:8:6"
                      }
                    ],
                    "id": 1066,
                    "name": "ExpressionStatement",
                    "src": "2620:8:6"
                  }
                ],
                "id": 1067,
                "name": "Block",
                "src": "2496:139:6"
              }
            ],
            "id": 1068,
            "name": "FunctionDefinition",
            "src": "2464:171:6"
          },
          {
            "attributes": {
              "functionSelector": "3f4ba83a",
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "unpause",
              "overrides": null,
              "scope": 1118,
              "stateMutability": "nonpayable",
              "virtual": true,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Unpauses all token transfers.\n See {ERC1155Pausable} and {Pausable-_unpause}.\n Requirements:\n - the caller must have the `PAUSER_ROLE`."
                },
                "id": 1069,
                "name": "StructuredDocumentation",
                "src": "2641:198:6"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1070,
                "name": "ParameterList",
                "src": "2860:2:6"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1071,
                "name": "ParameterList",
                "src": "2878:0:6"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_be510562063387b7714478be5eff01a8c39efbb1b76d9be224d34aac440c9e31",
                                  "typeString": "literal_string \"ERC1155PresetMinterPauser: must have pauser role to unpause\""
                                }
                              ],
                              "overloadedDeclarations": [
                                -18,
                                -18
                              ],
                              "referencedDeclaration": -18,
                              "type": "function (bool,string memory) pure",
                              "value": "require"
                            },
                            "id": 1072,
                            "name": "Identifier",
                            "src": "2888:7:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "bool",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 74,
                                  "type": "function (bytes32,address) view returns (bool)",
                                  "value": "hasRole"
                                },
                                "id": 1073,
                                "name": "Identifier",
                                "src": "2896:7:6"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 963,
                                  "type": "bytes32",
                                  "value": "PAUSER_ROLE"
                                },
                                "id": 1074,
                                "name": "Identifier",
                                "src": "2904:11:6"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "address payable",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        null
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4829,
                                      "type": "function () view returns (address payable)",
                                      "value": "_msgSender"
                                    },
                                    "id": 1075,
                                    "name": "Identifier",
                                    "src": "2917:10:6"
                                  }
                                ],
                                "id": 1076,
                                "name": "FunctionCall",
                                "src": "2917:12:6"
                              }
                            ],
                            "id": 1077,
                            "name": "FunctionCall",
                            "src": "2896:34:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "455243313135355072657365744d696e7465725061757365723a206d75737420686176652070617573657220726f6c6520746f20756e7061757365",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "string",
                              "type": "literal_string \"ERC1155PresetMinterPauser: must have pauser role to unpause\"",
                              "value": "ERC1155PresetMinterPauser: must have pauser role to unpause"
                            },
                            "id": 1078,
                            "name": "Literal",
                            "src": "2932:61:6"
                          }
                        ],
                        "id": 1079,
                        "name": "FunctionCall",
                        "src": "2888:106:6"
                      }
                    ],
                    "id": 1080,
                    "name": "ExpressionStatement",
                    "src": "2888:106:6"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "arguments": [
                            null
                          ],
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                null
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6034,
                              "type": "function ()",
                              "value": "_unpause"
                            },
                            "id": 1081,
                            "name": "Identifier",
                            "src": "3004:8:6"
                          }
                        ],
                        "id": 1082,
                        "name": "FunctionCall",
                        "src": "3004:10:6"
                      }
                    ],
                    "id": 1083,
                    "name": "ExpressionStatement",
                    "src": "3004:10:6"
                  }
                ],
                "id": 1084,
                "name": "Block",
                "src": "2878:143:6"
              }
            ],
            "id": 1085,
            "name": "FunctionDefinition",
            "src": "2844:177:6"
          },
          {
            "attributes": {
              "baseFunctions": [
                2101,
                2429
              ],
              "documentation": null,
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "_beforeTokenTransfer",
              "scope": 1118,
              "stateMutability": "nonpayable",
              "virtual": true,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "ERC1155",
                      "referencedDeclaration": 2262,
                      "type": "contract ERC1155"
                    },
                    "id": 1101,
                    "name": "UserDefinedTypeName",
                    "src": "3256:7:6"
                  },
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "ERC1155Pausable",
                      "referencedDeclaration": 2430,
                      "type": "contract ERC1155Pausable"
                    },
                    "id": 1102,
                    "name": "UserDefinedTypeName",
                    "src": "3265:15:6"
                  }
                ],
                "id": 1103,
                "name": "OverrideSpecifier",
                "src": "3247:34:6"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "operator",
                      "overrides": null,
                      "scope": 1117,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1086,
                        "name": "ElementaryTypeName",
                        "src": "3066:7:6"
                      }
                    ],
                    "id": 1087,
                    "name": "VariableDeclaration",
                    "src": "3066:16:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "from",
                      "overrides": null,
                      "scope": 1117,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1088,
                        "name": "ElementaryTypeName",
                        "src": "3092:7:6"
                      }
                    ],
                    "id": 1089,
                    "name": "VariableDeclaration",
                    "src": "3092:12:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "to",
                      "overrides": null,
                      "scope": 1117,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1090,
                        "name": "ElementaryTypeName",
                        "src": "3114:7:6"
                      }
                    ],
                    "id": 1091,
                    "name": "VariableDeclaration",
                    "src": "3114:10:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "ids",
                      "overrides": null,
                      "scope": 1117,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "uint256[]",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "uint256[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 1092,
                            "name": "ElementaryTypeName",
                            "src": "3134:7:6"
                          }
                        ],
                        "id": 1093,
                        "name": "ArrayTypeName",
                        "src": "3134:9:6"
                      }
                    ],
                    "id": 1094,
                    "name": "VariableDeclaration",
                    "src": "3134:20:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "amounts",
                      "overrides": null,
                      "scope": 1117,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "uint256[]",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "uint256[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 1095,
                            "name": "ElementaryTypeName",
                            "src": "3164:7:6"
                          }
                        ],
                        "id": 1096,
                        "name": "ArrayTypeName",
                        "src": "3164:9:6"
                      }
                    ],
                    "id": 1097,
                    "name": "VariableDeclaration",
                    "src": "3164:24:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "data",
                      "overrides": null,
                      "scope": 1117,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "bytes",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 1098,
                        "name": "ElementaryTypeName",
                        "src": "3198:5:6"
                      }
                    ],
                    "id": 1099,
                    "name": "VariableDeclaration",
                    "src": "3198:17:6"
                  }
                ],
                "id": 1100,
                "name": "ParameterList",
                "src": "3056:165:6"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1104,
                "name": "ParameterList",
                "src": "3286:0:6"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                },
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_beforeTokenTransfer",
                              "referencedDeclaration": 2429,
                              "type": "function (address,address,address,uint256[] memory,uint256[] memory,bytes memory)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": -25,
                                  "type": "contract super ERC1155PresetMinterPauser",
                                  "value": "super"
                                },
                                "id": 1105,
                                "name": "Identifier",
                                "src": "3296:5:6"
                              }
                            ],
                            "id": 1107,
                            "name": "MemberAccess",
                            "src": "3296:26:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 1087,
                              "type": "address",
                              "value": "operator"
                            },
                            "id": 1108,
                            "name": "Identifier",
                            "src": "3323:8:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 1089,
                              "type": "address",
                              "value": "from"
                            },
                            "id": 1109,
                            "name": "Identifier",
                            "src": "3333:4:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 1091,
                              "type": "address",
                              "value": "to"
                            },
                            "id": 1110,
                            "name": "Identifier",
                            "src": "3339:2:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 1094,
                              "type": "uint256[] memory",
                              "value": "ids"
                            },
                            "id": 1111,
                            "name": "Identifier",
                            "src": "3343:3:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 1097,
                              "type": "uint256[] memory",
                              "value": "amounts"
                            },
                            "id": 1112,
                            "name": "Identifier",
                            "src": "3348:7:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 1099,
                              "type": "bytes memory",
                              "value": "data"
                            },
                            "id": 1113,
                            "name": "Identifier",
                            "src": "3357:4:6"
                          }
                        ],
                        "id": 1114,
                        "name": "FunctionCall",
                        "src": "3296:66:6"
                      }
                    ],
                    "id": 1115,
                    "name": "ExpressionStatement",
                    "src": "3296:66:6"
                  }
                ],
                "id": 1116,
                "name": "Block",
                "src": "3286:83:6"
              }
            ],
            "id": 1117,
            "name": "FunctionDefinition",
            "src": "3027:342:6"
          }
        ],
        "id": 1118,
        "name": "ContractDefinition",
        "src": "838:2533:6"
      }
    ],
    "id": 1119,
    "name": "SourceUnit",
    "src": "33:3339:6"
  },
  "compiler": {
    "name": "solc",
    "version": "0.6.12+commit.27d51765.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.3",
  "updatedAt": "2021-11-29T02:07:34.174Z",
  "devdoc": {
    "details": "{ERC1155} token, including:  - ability for holders to burn (destroy) their tokens  - a minter role that allows for token minting (creation)  - a pauser role that allows to stop all token transfers This contract uses {AccessControl} to lock permissioned functions using the different roles - head to its documentation for details. The account that deploys the contract will be granted the minter and pauser roles, as well as the default admin role, which will let it grant both minter and pauser roles to other accounts.",
    "kind": "dev",
    "methods": {
      "balanceOf(address,uint256)": {
        "details": "See {IERC1155-balanceOf}. Requirements: - `account` cannot be the zero address."
      },
      "balanceOfBatch(address[],uint256[])": {
        "details": "See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length."
      },
      "constructor": {
        "details": "Grants `DEFAULT_ADMIN_ROLE`, `MINTER_ROLE`, and `PAUSER_ROLE` to the account that deploys the contract."
      },
      "getRoleAdmin(bytes32)": {
        "details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."
      },
      "getRoleMember(bytes32,uint256)": {
        "details": "Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information."
      },
      "getRoleMemberCount(bytes32)": {
        "details": "Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role."
      },
      "grantRole(bytes32,address)": {
        "details": "Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role."
      },
      "hasRole(bytes32,address)": {
        "details": "Returns `true` if `account` has been granted `role`."
      },
      "isApprovedForAll(address,address)": {
        "details": "See {IERC1155-isApprovedForAll}."
      },
      "mint(address,uint256,uint256,bytes)": {
        "details": "Creates `amount` new tokens for `to`, of token type `id`. See {ERC1155-_mint}. Requirements: - the caller must have the `MINTER_ROLE`."
      },
      "mintBatch(address,uint256[],uint256[],bytes)": {
        "details": "xref:ROOT:erc1155.adoc#batch-operations[Batched] variant of {mint}."
      },
      "pause()": {
        "details": "Pauses all token transfers. See {ERC1155Pausable} and {Pausable-_pause}. Requirements: - the caller must have the `PAUSER_ROLE`."
      },
      "paused()": {
        "details": "Returns true if the contract is paused, and false otherwise."
      },
      "renounceRole(bytes32,address)": {
        "details": "Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`."
      },
      "revokeRole(bytes32,address)": {
        "details": "Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role."
      },
      "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": {
        "details": "See {IERC1155-safeBatchTransferFrom}."
      },
      "safeTransferFrom(address,address,uint256,uint256,bytes)": {
        "details": "See {IERC1155-safeTransferFrom}."
      },
      "setApprovalForAll(address,bool)": {
        "details": "See {IERC1155-setApprovalForAll}."
      },
      "supportsInterface(bytes4)": {
        "details": "See {IERC165-supportsInterface}. Time complexity O(1), guaranteed to always use less than 30 000 gas."
      },
      "unpause()": {
        "details": "Unpauses all token transfers. See {ERC1155Pausable} and {Pausable-_unpause}. Requirements: - the caller must have the `PAUSER_ROLE`."
      },
      "uri(uint256)": {
        "details": "See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. Clients calling this function must replace the `\\{id\\}` substring with the actual token type ID."
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}