{
  "_format": "hh-sol-artifact-1",
  "contractName": "RollaFaucet",
  "sourceName": "contracts/RollaFaucet.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "UnmatchedLengths",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "name": "FaucetTransfer",
      "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"
    },
    {
      "inputs": [],
      "name": "ADMIN_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "DEFAULT_ADMIN_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "asset_maxValue",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "getFaucetBalance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "name": "getRoleAdmin",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "getTokenBalanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "balance",
          "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": "to",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "token",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amount",
          "type": "uint256[]"
        }
      ],
      "name": "multiTransfer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "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": "token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "maxTransferValue",
          "type": "uint256"
        }
      ],
      "name": "setMaxValue",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "whitelistAddress",
          "type": "address"
        }
      ],
      "name": "setWhitelistAddress",
      "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": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "whitelist",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "withdrawNativeToken",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x608080604052346100bf573360009081527f7d7ffb7a348e1c6a02869081a26547b49160dd3df72d1d75a570eb9b698292ec60205260408120547fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775919060ff1615610071575b61185e83816100c58239f35b818152806020526040812033825260205260408120600160ff1982541617905533917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339285a43880610065565b600080fdfe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c806301ffc9a71461016f5780631ca0a28d14610166578063248a9ca31461015d5780632976dd0b146101545780632f2ff15d1461014b5780633528bee91461014257806336568abe146101395780635a18664c1461013057806375b238fc14610127578063883f70571461011e57806391d148541461011557806393e59dc11461010c578063a217fddf14610103578063a224c745146100fa578063beabacc8146100f1578063c9112aee146100e85763d547741f0361000e576100e3610c3a565b61000e565b506100e3610bd0565b506100e3610b7c565b506100e3610ac0565b506100e3610a85565b506100e3610a32565b506100e36109af565b506100e36108c5565b506100e361086b565b506100e3610762565b506100e3610679565b506100e361059d565b506100e3610463565b506100e36103bd565b506100e361036f565b506100e3610283565b503461022f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f576004357fffffffff00000000000000000000000000000000000000000000000000000000811680910361022f57807f7965db0b0000000000000000000000000000000000000000000000000000000060209214908115610205575b506040519015158152f35b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014386101fa565b600080fd5b73ffffffffffffffffffffffffffffffffffffffff81160361022f57565b9181601f8401121561022f5782359167ffffffffffffffff831161022f576020808501948460051b01011161022f57565b503461022f5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f576004356102bf81610234565b67ffffffffffffffff9060243582811161022f576102e1903690600401610252565b91909260443590811161022f576102fc903690600401610252565b91908284036103455760005b84811061031157005b8061033f610322600193888a6112af565b3561032c81610234565b6103378388876112af565b3590866113b3565b01610308565b60046040517ffd6011f4000000000000000000000000000000000000000000000000000000008152fd5b503461022f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f5760043560005260006020526020600160406000200154604051908152f35b503461022f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f576004356103f981610234565b3360009081527f7d7ffb7a348e1c6a02869081a26547b49160dd3df72d1d75a570eb9b698292ec60205260408120909173ffffffffffffffffffffffffffffffffffffffff9161044e9060ff905b54166117ec565b16815260016020526024356040822055604051f35b503461022f576040807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f57600435906024356104a481610234565b600092808452836020526104bf600184862001543390610dd7565b8084528360205260ff6104f4838587209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b54161561050057505051f35b80845283602052610533828486209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905573ffffffffffffffffffffffffffffffffffffffff339216907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d858551a451f35b503461022f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f57602073ffffffffffffffffffffffffffffffffffffffff816004356105f181610234565b6024604051809481937f70a08231000000000000000000000000000000000000000000000000000000008352306004840152165afa90811561066c575b60009161063f575b50604051908152f35b61065f9150823d8111610665575b6106578183610d4c565b810190611332565b38610636565b503d61064d565b610674611341565b61062e565b503461022f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f576024356106b581610234565b3373ffffffffffffffffffffffffffffffffffffffff8216036106de5761001990600435610fa4565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152fd5b503461022f576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610868577fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758152806020526107ec60ff61044733604085209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b8080804760405190335af16107ff61172e565b501561080a57604051f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4661756365743a207769746864726177616c207375636365737366756c0000006044820152fd5b80fd5b503461022f5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f5760206040517fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758152f35b503461022f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f5761098060043561090481610234565b60206024359161091383610234565b6024604051809481937f70a0823100000000000000000000000000000000000000000000000000000000835273ffffffffffffffffffffffffffffffffffffffff8092166004840152165afa9081156109a2575b600091610984575b506040519081529081906020820190565b0390f35b61099c915060203d8111610665576106578183610d4c565b3861096f565b6109aa611341565b610967565b503461022f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f57602060ff610a266024356109f281610234565b6004356000526000845260406000209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b54166040519015158152f35b503461022f5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f57602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b503461022f5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f57602060405160008152f35b503461022f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f5773ffffffffffffffffffffffffffffffffffffffff600435610b1181610234565b3360009081527f7d7ffb7a348e1c6a02869081a26547b49160dd3df72d1d75a570eb9b698292ec60205260409020610b4b9060ff90610447565b167fffffffffffffffffffffffff000000000000000000000000000000000000000060025416176002556000604051f35b503461022f5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f57610019600435610bbb81610234565b602435610bc781610234565b604435916113b3565b503461022f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f5773ffffffffffffffffffffffffffffffffffffffff600435610c2181610234565b1660005260016020526020604060002054604051908152f35b503461022f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f57610019602435600435610c7c82610234565b806000526000602052610c986001604060002001543390610dd7565b610fa4565b60005b838110610cb05750506000910152565b8181015183820152602001610ca0565b90610cd360209282815194859201610c9d565b0190565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6080810190811067ffffffffffffffff821117610d2357604052565b610d2b610cd7565b604052565b6040810190811067ffffffffffffffff821117610d2357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610d2357604052565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60409360208452610dd08151809281602088015260208888019101610c9d565b0116010190565b9081600052600060205260ff610e118260406000209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b541615610e1c575050565b73ffffffffffffffffffffffffffffffffffffffff1690610e3b6110c9565b916030610e4784611134565b536078610e538461114a565b5360295b60018111610f4957610f45610eb8610f1386610ee7610e7f88610e7a89156111ae565b611213565b610ee16040519586947f416363657373436f6e74726f6c3a206163636f756e742000000000000000000060208701526037860190610cc0565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000815260110190565b90610cc0565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610d4c565b6040519182917f08c379a000000000000000000000000000000000000000000000000000000000835260048301610d8d565b0390fd5b90807f3031323334353637383961626364656600000000000000000000000000000000600f610f9293166010811015610f97575b1a610f88848761115b565b5360041c9161117a565b610e57565b610f9f611104565b610f7d565b6000908082528160205260ff610fdd84604085209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b5416610fe857505050565b8082528160205261101c83604084209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b73ffffffffffffffffffffffffffffffffffffffff33941692604051a4565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b919082018092116110bf57565b6110c7611082565b565b604051906060820182811067ffffffffffffffff8211176110f7575b604052602a8252604082602036910137565b6110ff610cd7565b6110e5565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602090805115611142570190565b610cd3611104565b602190805160011015611142570190565b90602091805182101561116d57010190565b611175611104565b010190565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9080156111a6570190565b610cd3611082565b156111b557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b6040519061122082610d07565b604282526060366020840137603061123783611134565b5360786112438361114a565b536041905b6001821161125e5761125b9150156111ae565b90565b807f3031323334353637383961626364656600000000000000000000000000000000600f61129c931660108110156112a2575b1a610f88848661115b565b90611248565b6112aa611104565b611291565b91908110156112c0575b60051b0190565b6112c8611104565b6112b9565b156112d457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4661756365743a2063616c6c6572206e6f742077686974656c697374656400006044820152fd5b9081602091031261022f575190565b506040513d6000823e3d90fd5b1561135557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4661756365743a206578636573736976652066756e6473207472616e736665726044820152fd5b90916115167f196c73113a7f87b33c7b46746c83a293eb307e33e92f73c97b2f75e43ef58b63936114d8838573ffffffffffffffffffffffffffffffffffffffff6114298161141760025473ffffffffffffffffffffffffffffffffffffffff1690565b16803314908115611546575b506112cd565b84166114d36114a1846040517f70a0823100000000000000000000000000000000000000000000000000000000815260208180611486896004830191909173ffffffffffffffffffffffffffffffffffffffff6020820193169052565b0381885afa908115611539575b60009161151b575b506110b2565b6114cb8773ffffffffffffffffffffffffffffffffffffffff166000526001602052604060002090565b54101561134e565b61154f565b60405193849342928590606092959493608083019673ffffffffffffffffffffffffffffffffffffffff809316845260208401521660408201520152565b0390a1565b611533915060203d8111610665576106578183610d4c565b3861149b565b611541611341565b611493565b90501538611423565b9160405191602093848401927fa9059cbb00000000000000000000000000000000000000000000000000000000845273ffffffffffffffffffffffffffffffffffffffff80931660248601526044850152604484526115ad84610d07565b1690604051926115bc84610d30565b8484527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656485850152823b1561162d57611608939260009283809351925af161160261172e565b9061179a565b8051908161161557505050565b826110c79361162893830101910161168b565b6116a3565b606485604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b9081602091031261022f5751801515810361022f5790565b156116aa57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b3d15611795573d9067ffffffffffffffff8211611788575b6040519161177c60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610d4c565b82523d6000602084013e565b611790610cd7565b611746565b606090565b909190156117a6575090565b8151156117b65750805190602001fd5b610f45906040519182917f08c379a000000000000000000000000000000000000000000000000000000000835260048301610d8d565b156117f357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4661756365743a2063616c6c6572206e6f7420616e2061646d696e00000000006044820152fdfea164736f6c6343000810000a",
  "deployedBytecode": "0x6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c806301ffc9a71461016f5780631ca0a28d14610166578063248a9ca31461015d5780632976dd0b146101545780632f2ff15d1461014b5780633528bee91461014257806336568abe146101395780635a18664c1461013057806375b238fc14610127578063883f70571461011e57806391d148541461011557806393e59dc11461010c578063a217fddf14610103578063a224c745146100fa578063beabacc8146100f1578063c9112aee146100e85763d547741f0361000e576100e3610c3a565b61000e565b506100e3610bd0565b506100e3610b7c565b506100e3610ac0565b506100e3610a85565b506100e3610a32565b506100e36109af565b506100e36108c5565b506100e361086b565b506100e3610762565b506100e3610679565b506100e361059d565b506100e3610463565b506100e36103bd565b506100e361036f565b506100e3610283565b503461022f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f576004357fffffffff00000000000000000000000000000000000000000000000000000000811680910361022f57807f7965db0b0000000000000000000000000000000000000000000000000000000060209214908115610205575b506040519015158152f35b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014386101fa565b600080fd5b73ffffffffffffffffffffffffffffffffffffffff81160361022f57565b9181601f8401121561022f5782359167ffffffffffffffff831161022f576020808501948460051b01011161022f57565b503461022f5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f576004356102bf81610234565b67ffffffffffffffff9060243582811161022f576102e1903690600401610252565b91909260443590811161022f576102fc903690600401610252565b91908284036103455760005b84811061031157005b8061033f610322600193888a6112af565b3561032c81610234565b6103378388876112af565b3590866113b3565b01610308565b60046040517ffd6011f4000000000000000000000000000000000000000000000000000000008152fd5b503461022f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f5760043560005260006020526020600160406000200154604051908152f35b503461022f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f576004356103f981610234565b3360009081527f7d7ffb7a348e1c6a02869081a26547b49160dd3df72d1d75a570eb9b698292ec60205260408120909173ffffffffffffffffffffffffffffffffffffffff9161044e9060ff905b54166117ec565b16815260016020526024356040822055604051f35b503461022f576040807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f57600435906024356104a481610234565b600092808452836020526104bf600184862001543390610dd7565b8084528360205260ff6104f4838587209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b54161561050057505051f35b80845283602052610533828486209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905573ffffffffffffffffffffffffffffffffffffffff339216907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d858551a451f35b503461022f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f57602073ffffffffffffffffffffffffffffffffffffffff816004356105f181610234565b6024604051809481937f70a08231000000000000000000000000000000000000000000000000000000008352306004840152165afa90811561066c575b60009161063f575b50604051908152f35b61065f9150823d8111610665575b6106578183610d4c565b810190611332565b38610636565b503d61064d565b610674611341565b61062e565b503461022f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f576024356106b581610234565b3373ffffffffffffffffffffffffffffffffffffffff8216036106de5761001990600435610fa4565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152fd5b503461022f576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610868577fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758152806020526107ec60ff61044733604085209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b8080804760405190335af16107ff61172e565b501561080a57604051f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4661756365743a207769746864726177616c207375636365737366756c0000006044820152fd5b80fd5b503461022f5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f5760206040517fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758152f35b503461022f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f5761098060043561090481610234565b60206024359161091383610234565b6024604051809481937f70a0823100000000000000000000000000000000000000000000000000000000835273ffffffffffffffffffffffffffffffffffffffff8092166004840152165afa9081156109a2575b600091610984575b506040519081529081906020820190565b0390f35b61099c915060203d8111610665576106578183610d4c565b3861096f565b6109aa611341565b610967565b503461022f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f57602060ff610a266024356109f281610234565b6004356000526000845260406000209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b54166040519015158152f35b503461022f5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f57602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b503461022f5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f57602060405160008152f35b503461022f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f5773ffffffffffffffffffffffffffffffffffffffff600435610b1181610234565b3360009081527f7d7ffb7a348e1c6a02869081a26547b49160dd3df72d1d75a570eb9b698292ec60205260409020610b4b9060ff90610447565b167fffffffffffffffffffffffff000000000000000000000000000000000000000060025416176002556000604051f35b503461022f5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f57610019600435610bbb81610234565b602435610bc781610234565b604435916113b3565b503461022f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f5773ffffffffffffffffffffffffffffffffffffffff600435610c2181610234565b1660005260016020526020604060002054604051908152f35b503461022f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022f57610019602435600435610c7c82610234565b806000526000602052610c986001604060002001543390610dd7565b610fa4565b60005b838110610cb05750506000910152565b8181015183820152602001610ca0565b90610cd360209282815194859201610c9d565b0190565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6080810190811067ffffffffffffffff821117610d2357604052565b610d2b610cd7565b604052565b6040810190811067ffffffffffffffff821117610d2357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610d2357604052565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60409360208452610dd08151809281602088015260208888019101610c9d565b0116010190565b9081600052600060205260ff610e118260406000209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b541615610e1c575050565b73ffffffffffffffffffffffffffffffffffffffff1690610e3b6110c9565b916030610e4784611134565b536078610e538461114a565b5360295b60018111610f4957610f45610eb8610f1386610ee7610e7f88610e7a89156111ae565b611213565b610ee16040519586947f416363657373436f6e74726f6c3a206163636f756e742000000000000000000060208701526037860190610cc0565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000815260110190565b90610cc0565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610d4c565b6040519182917f08c379a000000000000000000000000000000000000000000000000000000000835260048301610d8d565b0390fd5b90807f3031323334353637383961626364656600000000000000000000000000000000600f610f9293166010811015610f97575b1a610f88848761115b565b5360041c9161117a565b610e57565b610f9f611104565b610f7d565b6000908082528160205260ff610fdd84604085209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b5416610fe857505050565b8082528160205261101c83604084209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b73ffffffffffffffffffffffffffffffffffffffff33941692604051a4565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b919082018092116110bf57565b6110c7611082565b565b604051906060820182811067ffffffffffffffff8211176110f7575b604052602a8252604082602036910137565b6110ff610cd7565b6110e5565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602090805115611142570190565b610cd3611104565b602190805160011015611142570190565b90602091805182101561116d57010190565b611175611104565b010190565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9080156111a6570190565b610cd3611082565b156111b557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b6040519061122082610d07565b604282526060366020840137603061123783611134565b5360786112438361114a565b536041905b6001821161125e5761125b9150156111ae565b90565b807f3031323334353637383961626364656600000000000000000000000000000000600f61129c931660108110156112a2575b1a610f88848661115b565b90611248565b6112aa611104565b611291565b91908110156112c0575b60051b0190565b6112c8611104565b6112b9565b156112d457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4661756365743a2063616c6c6572206e6f742077686974656c697374656400006044820152fd5b9081602091031261022f575190565b506040513d6000823e3d90fd5b1561135557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4661756365743a206578636573736976652066756e6473207472616e736665726044820152fd5b90916115167f196c73113a7f87b33c7b46746c83a293eb307e33e92f73c97b2f75e43ef58b63936114d8838573ffffffffffffffffffffffffffffffffffffffff6114298161141760025473ffffffffffffffffffffffffffffffffffffffff1690565b16803314908115611546575b506112cd565b84166114d36114a1846040517f70a0823100000000000000000000000000000000000000000000000000000000815260208180611486896004830191909173ffffffffffffffffffffffffffffffffffffffff6020820193169052565b0381885afa908115611539575b60009161151b575b506110b2565b6114cb8773ffffffffffffffffffffffffffffffffffffffff166000526001602052604060002090565b54101561134e565b61154f565b60405193849342928590606092959493608083019673ffffffffffffffffffffffffffffffffffffffff809316845260208401521660408201520152565b0390a1565b611533915060203d8111610665576106578183610d4c565b3861149b565b611541611341565b611493565b90501538611423565b9160405191602093848401927fa9059cbb00000000000000000000000000000000000000000000000000000000845273ffffffffffffffffffffffffffffffffffffffff80931660248601526044850152604484526115ad84610d07565b1690604051926115bc84610d30565b8484527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656485850152823b1561162d57611608939260009283809351925af161160261172e565b9061179a565b8051908161161557505050565b826110c79361162893830101910161168b565b6116a3565b606485604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b9081602091031261022f5751801515810361022f5790565b156116aa57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b3d15611795573d9067ffffffffffffffff8211611788575b6040519161177c60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610d4c565b82523d6000602084013e565b611790610cd7565b611746565b606090565b909190156117a6575090565b8151156117b65750805190602001fd5b610f45906040519182917f08c379a000000000000000000000000000000000000000000000000000000000835260048301610d8d565b156117f357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4661756365743a2063616c6c6572206e6f7420616e2061646d696e00000000006044820152fdfea164736f6c6343000810000a",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
