[ { "inputs": [ { "internalType": "address", "name": "admin", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "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": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "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": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "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": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
6101406040523480156200001257600080fd5b50604051620028f7380380620028f78339810160408190526200003591620003a9565b604051806040016040528060048152602001634445555360e01b81525080604051806040016040528060018152602001603160f81b815250604051806040016040528060048152602001634445555360e01b815250604051806040016040528060048152602001634445555360e01b8152508160039080519060200190620000bf92919062000303565b508051620000d590600490602084019062000303565b5050825160209384012082519284019290922060e08390526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818901819052818301979097526060810194909452608080850193909352308483018190528151808603909301835260c0948501909152815191909601209052929092526101205250620001769050600082620001a9565b620001a27f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a682620001a9565b5062000417565b620001c08282620001ec60201b62000a741760201c565b6000828152600660209081526040909120620001e791839062000b6862000291821b17901c565b505050565b60008281526005602090815260408083206001600160a01b038516845290915290205460ff166200028d5760008281526005602090815260408083206001600160a01b03851684529091529020805460ff191660011790556200024c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620002a8836001600160a01b038416620002b1565b90505b92915050565b6000818152600183016020526040812054620002fa57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620002ab565b506000620002ab565b8280546200031190620003db565b90600052602060002090601f01602090048101928262000335576000855562000380565b82601f106200035057805160ff191683800117855562000380565b8280016001018555821562000380579182015b828111156200038057825182559160200191906001019062000363565b506200038e92915062000392565b5090565b5b808211156200038e576000815560010162000393565b600060208284031215620003bc57600080fd5b81516001600160a01b0381168114620003d457600080fd5b9392505050565b600181811c90821680620003f057607f821691505b6020821081036200041157634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e0516101005161012051612490620004676000396000611221015260006112700152600061124b015260006111a4015260006111ce015260006111f801526124906000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c806370a08231116100f9578063a457c2d711610097578063d505accf11610071578063d505accf146103f1578063d539139314610404578063d547741f1461042b578063dd62ed3e1461043e57600080fd5b8063a457c2d7146103b8578063a9059cbb146103cb578063ca15c873146103de57600080fd5b80639010d07c116100d35780639010d07c1461032a57806391d148541461036257806395d89b41146103a8578063a217fddf146103b057600080fd5b806370a08231146102ce57806379cc6790146103045780637ecebe001461031757600080fd5b80632f2ff15d1161016657806336568abe1161014057806336568abe14610282578063395093511461029557806340c10f19146102a857806342966c68146102bb57600080fd5b80632f2ff15d14610256578063313ce5671461026b5780633644e5151461027a57600080fd5b806318160ddd1161019757806318160ddd1461020e57806323b872dd14610220578063248a9ca31461023357600080fd5b806301ffc9a7146101be57806306fdde03146101e6578063095ea7b3146101fb575b600080fd5b6101d16101cc366004611f93565b610484565b60405190151581526020015b60405180910390f35b6101ee6104e0565b6040516101dd9190612001565b6101d161020936600461207b565b610572565b6002545b6040519081526020016101dd565b6101d161022e3660046120a5565b61058a565b6102126102413660046120e1565b60009081526005602052604090206001015490565b6102696102643660046120fa565b6105ae565b005b604051601281526020016101dd565b6102126105d8565b6102696102903660046120fa565b6105e7565b6101d16102a336600461207b565b61069f565b6102696102b636600461207b565b6106eb565b6102696102c93660046120e1565b61071f565b6102126102dc366004612126565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b61026961031236600461207b565b61072c565b610212610325366004612126565b610741565b61033d610338366004612141565b61076c565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101dd565b6101d16103703660046120fa565b600091825260056020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6101ee61078b565b610212600081565b6101d16103c636600461207b565b61079a565b6101d16103d936600461207b565b61086b565b6102126103ec3660046120e1565b610879565b6102696103ff366004612163565b610890565b6102127f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6102696104393660046120fa565b610a4f565b61021261044c3660046121d6565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f5a05180f0000000000000000000000000000000000000000000000000000000014806104da57506104da82610b8a565b92915050565b6060600380546104ef90612200565b80601f016020809104026020016040519081016040528092919081815260200182805461051b90612200565b80156105685780601f1061053d57610100808354040283529160200191610568565b820191906000526020600020905b81548152906001019060200180831161054b57829003601f168201915b5050505050905090565b600033610580818585610c21565b5060019392505050565b600033610598858285610dd4565b6105a3858585610eab565b506001949350505050565b6000828152600560205260409020600101546105c98161115e565b6105d38383611168565b505050565b60006105e261118a565b905090565b73ffffffffffffffffffffffffffffffffffffffff81163314610691576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b61069b82826112be565b5050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061058090829086906106e690879061227c565b610c21565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66107158161115e565b6105d383836112e0565b6107293382611400565b50565b610737823383610dd4565b61069b8282611400565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600760205260408120546104da565b600082815260066020526040812061078490836115ed565b9392505050565b6060600480546104ef90612200565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091908381101561085e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610688565b6105a38286868403610c21565b600033610580818585610eab565b60008181526006602052604081206104da906115f9565b834211156108fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610688565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886109298c611603565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061099182611638565b905060006109a1828787876116a1565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610688565b610a438a8a8a610c21565b50505050505050505050565b600082815260056020526040902060010154610a6a8161115e565b6105d383836112be565b600082815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661069b57600082815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610b0a3390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006107848373ffffffffffffffffffffffffffffffffffffffff84166116c9565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806104da57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146104da565b73ffffffffffffffffffffffffffffffffffffffff8316610cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610688565b73ffffffffffffffffffffffffffffffffffffffff8216610d66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610688565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610ea55781811015610e98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610688565b610ea58484848403610c21565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610f4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610688565b73ffffffffffffffffffffffffffffffffffffffff8216610ff1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610688565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156110a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610688565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152602081905260408082208585039055918516815290812080548492906110eb90849061227c565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161115191815260200190565b60405180910390a3610ea5565b6107298133611718565b6111728282610a74565b60008281526006602052604090206105d39082610b68565b60003073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161480156111f057507f000000000000000000000000000000000000000000000000000000000000000046145b1561121a57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6112c882826117ea565b60008281526006602052604090206105d390826118a5565b73ffffffffffffffffffffffffffffffffffffffff821661135d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610688565b806002600082825461136f919061227c565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040812080548392906113a990849061227c565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff82166114a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610688565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015611559576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610688565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260408120838303905560028054849290611595908490612294565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b600061078483836118c7565b60006104da825490565b73ffffffffffffffffffffffffffffffffffffffff811660009081526007602052604090208054600181018255905b50919050565b60006104da61164561118a565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b60008060006116b2878787876118f1565b915091506116bf81611a09565b5095945050505050565b6000818152600183016020526040812054611710575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556104da565b5060006104da565b600082815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661069b576117708173ffffffffffffffffffffffffffffffffffffffff166014611c5d565b61177b836020611c5d565b60405160200161178c9291906122ab565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261068891600401612001565b600082815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff161561069b57600082815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006107848373ffffffffffffffffffffffffffffffffffffffff8416611ea0565b60008260000182815481106118de576118de61232c565b9060005260206000200154905092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156119285750600090506003611a00565b8460ff16601b1415801561194057508460ff16601c14155b156119515750600090506004611a00565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156119a5573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166119f957600060019250925050611a00565b9150600090505b94509492505050565b6000816004811115611a1d57611a1d61235b565b03611a255750565b6001816004811115611a3957611a3961235b565b03611aa0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610688565b6002816004811115611ab457611ab461235b565b03611b1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610688565b6003816004811115611b2f57611b2f61235b565b03611bbc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610688565b6004816004811115611bd057611bd061235b565b03610729576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610688565b60606000611c6c83600261238a565b611c7790600261227c565b67ffffffffffffffff811115611c8f57611c8f6123c7565b6040519080825280601f01601f191660200182016040528015611cb9576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611cf057611cf061232c565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611d5357611d5361232c565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000611d8f84600261238a565b611d9a90600161227c565b90505b6001811115611e37577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611ddb57611ddb61232c565b1a60f81b828281518110611df157611df161232c565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93611e30816123f6565b9050611d9d565b508315610784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610688565b60008181526001830160205260408120548015611f89576000611ec4600183612294565b8554909150600090611ed890600190612294565b9050818114611f3d576000866000018281548110611ef857611ef861232c565b9060005260206000200154905080876000018481548110611f1b57611f1b61232c565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611f4e57611f4e61242b565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506104da565b60009150506104da565b600060208284031215611fa557600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461078457600080fd5b60005b83811015611ff0578181015183820152602001611fd8565b83811115610ea55750506000910152565b6020815260008251806020840152612020816040850160208701611fd5565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461207657600080fd5b919050565b6000806040838503121561208e57600080fd5b61209783612052565b946020939093013593505050565b6000806000606084860312156120ba57600080fd5b6120c384612052565b92506120d160208501612052565b9150604084013590509250925092565b6000602082840312156120f357600080fd5b5035919050565b6000806040838503121561210d57600080fd5b8235915061211d60208401612052565b90509250929050565b60006020828403121561213857600080fd5b61078482612052565b6000806040838503121561215457600080fd5b50508035926020909101359150565b600080600080600080600060e0888a03121561217e57600080fd5b61218788612052565b965061219560208901612052565b95506040880135945060608801359350608088013560ff811681146121b957600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156121e957600080fd5b6121f283612052565b915061211d60208401612052565b600181811c9082168061221457607f821691505b602082108103611632577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561228f5761228f61224d565b500190565b6000828210156122a6576122a661224d565b500390565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516122e3816017850160208801611fd5565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351612320816028840160208801611fd5565b01602801949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156123c2576123c261224d565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000816124055761240561224d565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220847403c75469b14bb17672e8a7188beeb49e20374c6d23f9f7e17e3cd7a1c86964736f6c634300080d0033000000000000000000000000e5227f141575dce74721f4a9be2d7d636f923044