Loading
[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "InvalidShortString", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "str", "type": "string" } ], "name": "StringTooLong", "type": "error" }, { "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": [], "name": "EIP712DomainChanged", "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": "BURNER_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": [], "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": "value", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "cap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "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": "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" } ]
6101806040523480156200001257600080fd5b506040518060400160405280601081526020017f576f726c644d6f62696c65546f6b656e00000000000000000000000000000000815250806040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525062000090620002ee60201b60201c565b600a6200009e919062000723565b6377359400620000af919062000774565b6040518060400160405280601081526020017f576f726c644d6f62696c65546f6b656e000000000000000000000000000000008152506040518060400160405280600481526020017f574d54580000000000000000000000000000000000000000000000000000000081525081600390816200012c919062000a2f565b5080600490816200013e919062000a2f565b5050506000811162000187576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200017e9062000b77565b60405180910390fd5b806080818152505050620001a6600583620002f760201b90919060201c565b6101408181525050620001c4600682620002f760201b90919060201c565b610160818152505081805190602001206101008181525050808051906020012061012081815250504660c08181525050620002046200034f60201b60201c565b60a081815250503073ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff1681525050505050620002666000801b6200025a620003ad60201b60201c565b620003b560201b60201c565b620002a77f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66200029b620003ad60201b60201c565b620003b560201b60201c565b620002e87f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a848620002dc620003ad60201b60201c565b620003b560201b60201c565b62000dab565b60006006905090565b60006020835110156200031d576200031583620004a760201b60201c565b905062000349565b826200032f836200051460201b60201c565b600001908162000340919062000a2f565b5060ff60001b90505b92915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f610100516101205146306040516020016200039295949392919062000c0a565b60405160208183030381529060405280519060200120905090565b600033905090565b620003c782826200051e60201b60201c565b620004a35760016009600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000448620003ad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600080829050601f81511115620004f757826040517f305a27a9000000000000000000000000000000000000000000000000000000008152600401620004ee919062000ce5565b60405180910390fd5b805181620005059062000d3b565b60001c1760001b915050919050565b6000819050919050565b60006009600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200061757808604811115620005ef57620005ee62000589565b5b6001851615620005ff5780820291505b80810290506200060f85620005b8565b9450620005cf565b94509492505050565b60008262000632576001905062000705565b8162000642576000905062000705565b81600181146200065b576002811462000666576200069c565b600191505062000705565b60ff8411156200067b576200067a62000589565b5b8360020a91508482111562000695576200069462000589565b5b5062000705565b5060208310610133831016604e8410600b8410161715620006d65782820a905083811115620006d057620006cf62000589565b5b62000705565b620006e58484846001620005c5565b92509050818404811115620006ff57620006fe62000589565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000730826200070c565b91506200073d8362000716565b92506200076c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000620565b905092915050565b600062000781826200070c565b91506200078e836200070c565b92508282026200079e816200070c565b91508282048414831517620007b857620007b762000589565b5b5092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200084157607f821691505b602082108103620008575762000856620007f9565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008c17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000882565b620008cd868362000882565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620009106200090a62000904846200070c565b620008e5565b6200070c565b9050919050565b6000819050919050565b6200092c83620008ef565b620009446200093b8262000917565b8484546200088f565b825550505050565b600090565b6200095b6200094c565b6200096881848462000921565b505050565b5b8181101562000990576200098460008262000951565b6001810190506200096e565b5050565b601f821115620009df57620009a9816200085d565b620009b48462000872565b81016020851015620009c4578190505b620009dc620009d38562000872565b8301826200096d565b50505b505050565b600082821c905092915050565b600062000a0460001984600802620009e4565b1980831691505092915050565b600062000a1f8383620009f1565b9150826002028217905092915050565b62000a3a82620007bf565b67ffffffffffffffff81111562000a565762000a55620007ca565b5b62000a62825462000828565b62000a6f82828562000994565b600060209050601f83116001811462000aa7576000841562000a92578287015190505b62000a9e858262000a11565b86555062000b0e565b601f19841662000ab7866200085d565b60005b8281101562000ae15784890151825560018201915060208501945060208101905062000aba565b8683101562000b01578489015162000afd601f891682620009f1565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332304361707065643a2063617020697320300000000000000000000000600082015250565b600062000b5f60158362000b16565b915062000b6c8262000b27565b602082019050919050565b6000602082019050818103600083015262000b928162000b50565b9050919050565b6000819050919050565b62000bae8162000b99565b82525050565b62000bbf816200070c565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bf28262000bc5565b9050919050565b62000c048162000be5565b82525050565b600060a08201905062000c21600083018862000ba3565b62000c30602083018762000ba3565b62000c3f604083018662000ba3565b62000c4e606083018562000bb4565b62000c5d608083018462000bf9565b9695505050505050565b60005b8381101562000c8757808201518184015260208101905062000c6a565b60008484015250505050565b6000601f19601f8301169050919050565b600062000cb182620007bf565b62000cbd818562000b16565b935062000ccf81856020860162000c67565b62000cda8162000c93565b840191505092915050565b6000602082019050818103600083015262000d01818462000ca4565b905092915050565b600081519050919050565b6000819050602082019050919050565b600062000d32825162000b99565b80915050919050565b600062000d488262000d09565b8262000d548462000d14565b905062000d618162000d24565b9250602082101562000da45762000d9f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8360200360080262000882565b831692505b5050919050565b60805160a05160c05160e0516101005161012051610140516101605161361e62000e116000396000610a3801526000610a0401526000611a7b01526000611a5a015260006114d50152600061152b01526000611554015260006107a9015261361e6000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806342966c68116100f9578063a217fddf11610097578063d505accf11610071578063d505accf14610549578063d539139314610565578063d547741f14610583578063dd62ed3e1461059f576101c4565b8063a217fddf146104cb578063a457c2d7146104e9578063a9059cbb14610519576101c4565b80637ecebe00116100d35780637ecebe001461042957806384b0196e1461045957806391d148541461047d57806395d89b41146104ad576101c4565b806342966c68146103c157806370a08231146103dd57806379cc67901461040d576101c4565b80632f2ff15d116101665780633644e515116101405780633644e5151461033b57806336568abe14610359578063395093511461037557806340c10f19146103a5576101c4565b80632f2ff15d146102e3578063313ce567146102ff578063355274ea1461031d576101c4565b806318160ddd116101a257806318160ddd1461024757806323b872dd14610265578063248a9ca314610295578063282c51f3146102c5576101c4565b806301ffc9a7146101c957806306fdde03146101f9578063095ea7b314610217575b600080fd5b6101e360048036038101906101de91906122b4565b6105cf565b6040516101f091906122fc565b60405180910390f35b610201610649565b60405161020e91906123a7565b60405180910390f35b610231600480360381019061022c919061245d565b6106db565b60405161023e91906122fc565b60405180910390f35b61024f6106fe565b60405161025c91906124ac565b60405180910390f35b61027f600480360381019061027a91906124c7565b610708565b60405161028c91906122fc565b60405180910390f35b6102af60048036038101906102aa9190612550565b610737565b6040516102bc919061258c565b60405180910390f35b6102cd610757565b6040516102da919061258c565b60405180910390f35b6102fd60048036038101906102f891906125a7565b61077b565b005b61030761079c565b6040516103149190612603565b60405180910390f35b6103256107a5565b60405161033291906124ac565b60405180910390f35b6103436107cd565b604051610350919061258c565b60405180910390f35b610373600480360381019061036e91906125a7565b6107dc565b005b61038f600480360381019061038a919061245d565b61085f565b60405161039c91906122fc565b60405180910390f35b6103bf60048036038101906103ba919061245d565b610896565b005b6103db60048036038101906103d6919061261e565b6108cf565b005b6103f760048036038101906103f2919061264b565b61090e565b60405161040491906124ac565b60405180910390f35b6104276004803603810190610422919061245d565b610956565b005b610443600480360381019061043e919061264b565b6109a1565b60405161045091906124ac565b60405180910390f35b6104616109f1565b6040516104749796959493929190612780565b60405180910390f35b610497600480360381019061049291906125a7565b610af3565b6040516104a491906122fc565b60405180910390f35b6104b5610b5e565b6040516104c291906123a7565b60405180910390f35b6104d3610bf0565b6040516104e0919061258c565b60405180910390f35b61050360048036038101906104fe919061245d565b610bf7565b60405161051091906122fc565b60405180910390f35b610533600480360381019061052e919061245d565b610c6e565b60405161054091906122fc565b60405180910390f35b610563600480360381019061055e9190612830565b610c91565b005b61056d610dd3565b60405161057a919061258c565b60405180910390f35b61059d600480360381019061059891906125a7565b610df7565b005b6105b960048036038101906105b491906128d2565b610e18565b6040516105c691906124ac565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610642575061064182610e9f565b5b9050919050565b60606003805461065890612941565b80601f016020809104026020016040519081016040528092919081815260200182805461068490612941565b80156106d15780601f106106a6576101008083540402835291602001916106d1565b820191906000526020600020905b8154815290600101906020018083116106b457829003601f168201915b5050505050905090565b6000806106e6610f09565b90506106f3818585610f11565b600191505092915050565b6000600254905090565b600080610713610f09565b90506107208582856110da565b61072b858585611166565b60019150509392505050565b600060096000838152602001908152602001600020600101549050919050565b7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a84881565b61078482610737565b61078d816113dc565b61079783836113f0565b505050565b60006006905090565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b60006107d76114d1565b905090565b6107e4610f09565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610851576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610848906129e4565b60405180910390fd5b61085b8282611588565b5050565b60008061086a610f09565b905061088b81858561087c8589610e18565b6108869190612a33565b610f11565b600191505092915050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66108c0816113dc565b6108ca838361166a565b505050565b7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a8486108f9816113dc565b61090a610904610f09565b83611678565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a848610980816113dc565b6109928361098c610f09565b846110da565b61099c8383611678565b505050565b60006109ea600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611845565b9050919050565b600060608060008060006060610a3160057f000000000000000000000000000000000000000000000000000000000000000061185390919063ffffffff16565b610a6560067f000000000000000000000000000000000000000000000000000000000000000061185390919063ffffffff16565b46306000801b600067ffffffffffffffff811115610a8657610a85612a67565b5b604051908082528060200260200182016040528015610ab45781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b60006009600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606060048054610b6d90612941565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9990612941565b8015610be65780601f10610bbb57610100808354040283529160200191610be6565b820191906000526020600020905b815481529060010190602001808311610bc957829003601f168201915b5050505050905090565b6000801b81565b600080610c02610f09565b90506000610c108286610e18565b905083811015610c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4c90612b08565b60405180910390fd5b610c628286868403610f11565b60019250505092915050565b600080610c79610f09565b9050610c86818585611166565b600191505092915050565b83421115610cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccb90612b74565b60405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610d038c611903565b89604051602001610d1996959493929190612b94565b6040516020818303038152906040528051906020012090506000610d3c82611961565b90506000610d4c8287878761197b565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610dbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db390612c41565b60405180910390fd5b610dc78a8a8a610f11565b50505050505050505050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b610e0082610737565b610e09816113dc565b610e138383611588565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7790612cd3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe690612d65565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110cd91906124ac565b60405180910390a3505050565b60006110e68484610e18565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146111605781811015611152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114990612dd1565b60405180910390fd5b61115f8484848403610f11565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cc90612e63565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b90612ef5565b60405180910390fd5b61124f8383836119a6565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156112d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cc90612f87565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113c391906124ac565b60405180910390a36113d68484846119ab565b50505050565b6113ed816113e8610f09565b6119b0565b50565b6113fa8282610af3565b6114cd5760016009600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611472610f09565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614801561154d57507f000000000000000000000000000000000000000000000000000000000000000046145b1561157a577f00000000000000000000000000000000000000000000000000000000000000009050611585565b611582611a35565b90505b90565b6115928282610af3565b156116665760006009600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061160b610f09565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6116748282611acb565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116de90613019565b60405180910390fd5b6116f3826000836119a6565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611779576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611770906130ab565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161182c91906124ac565b60405180910390a3611840836000846119ab565b505050565b600081600001549050919050565b606060ff60001b83146118705761186983611b35565b90506118fd565b81805461187c90612941565b80601f01602080910402602001604051908101604052809291908181526020018280546118a890612941565b80156118f55780601f106118ca576101008083540402835291602001916118f5565b820191906000526020600020905b8154815290600101906020018083116118d857829003601f168201915b505050505090505b92915050565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905061195081611845565b915061195b81611ba9565b50919050565b600061197461196e6114d1565b83611bbf565b9050919050565b600080600061198c87878787611c00565b9150915061199981611ce2565b8192505050949350505050565b505050565b505050565b6119ba8282610af3565b611a31576119c781611e48565b6119d58360001c6020611e75565b6040516020016119e692919061319f565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2891906123a7565b60405180910390fd5b5050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000004630604051602001611ab09594939291906131d9565b60405160208183030381529060405280519060200120905090565b611ad36107a5565b81611adc6106fe565b611ae69190612a33565b1115611b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1e90613278565b60405180910390fd5b611b3182826120b1565b5050565b60606000611b4283612207565b90506000602067ffffffffffffffff811115611b6157611b60612a67565b5b6040519080825280601f01601f191660200182016040528015611b935781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b6001816000016000828254019250508190555050565b60006040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c1115611c3b576000600391509150611cd9565b600060018787878760405160008152602001604052604051611c609493929190613298565b6020604051602081039080840390855afa158015611c82573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cd057600060019250925050611cd9565b80600092509250505b94509492505050565b60006004811115611cf657611cf56132dd565b5b816004811115611d0957611d086132dd565b5b0315611e455760016004811115611d2357611d226132dd565b5b816004811115611d3657611d356132dd565b5b03611d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6d90613358565b60405180910390fd5b60026004811115611d8a57611d896132dd565b5b816004811115611d9d57611d9c6132dd565b5b03611ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd4906133c4565b60405180910390fd5b60036004811115611df157611df06132dd565b5b816004811115611e0457611e036132dd565b5b03611e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3b90613456565b60405180910390fd5b5b50565b6060611e6e8273ffffffffffffffffffffffffffffffffffffffff16601460ff16611e75565b9050919050565b606060006002836002611e889190613476565b611e929190612a33565b67ffffffffffffffff811115611eab57611eaa612a67565b5b6040519080825280601f01601f191660200182016040528015611edd5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611f1557611f146134b8565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611f7957611f786134b8565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002611fb99190613476565b611fc39190612a33565b90505b6001811115612063577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110612005576120046134b8565b5b1a60f81b82828151811061201c5761201b6134b8565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061205c906134e7565b9050611fc6565b50600084146120a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209e9061355c565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612120576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612117906135c8565b60405180910390fd5b61212c600083836119a6565b806002600082825461213e9190612a33565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121ef91906124ac565b60405180910390a3612203600083836119ab565b5050565b60008060ff8360001c169050601f81111561224e576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6122918161225c565b811461229c57600080fd5b50565b6000813590506122ae81612288565b92915050565b6000602082840312156122ca576122c9612257565b5b60006122d88482850161229f565b91505092915050565b60008115159050919050565b6122f6816122e1565b82525050565b600060208201905061231160008301846122ed565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612351578082015181840152602081019050612336565b60008484015250505050565b6000601f19601f8301169050919050565b600061237982612317565b6123838185612322565b9350612393818560208601612333565b61239c8161235d565b840191505092915050565b600060208201905081810360008301526123c1818461236e565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123f4826123c9565b9050919050565b612404816123e9565b811461240f57600080fd5b50565b600081359050612421816123fb565b92915050565b6000819050919050565b61243a81612427565b811461244557600080fd5b50565b60008135905061245781612431565b92915050565b6000806040838503121561247457612473612257565b5b600061248285828601612412565b925050602061249385828601612448565b9150509250929050565b6124a681612427565b82525050565b60006020820190506124c1600083018461249d565b92915050565b6000806000606084860312156124e0576124df612257565b5b60006124ee86828701612412565b93505060206124ff86828701612412565b925050604061251086828701612448565b9150509250925092565b6000819050919050565b61252d8161251a565b811461253857600080fd5b50565b60008135905061254a81612524565b92915050565b60006020828403121561256657612565612257565b5b60006125748482850161253b565b91505092915050565b6125868161251a565b82525050565b60006020820190506125a1600083018461257d565b92915050565b600080604083850312156125be576125bd612257565b5b60006125cc8582860161253b565b92505060206125dd85828601612412565b9150509250929050565b600060ff82169050919050565b6125fd816125e7565b82525050565b600060208201905061261860008301846125f4565b92915050565b60006020828403121561263457612633612257565b5b600061264284828501612448565b91505092915050565b60006020828403121561266157612660612257565b5b600061266f84828501612412565b91505092915050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6126ad81612678565b82525050565b6126bc816123e9565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6126f781612427565b82525050565b600061270983836126ee565b60208301905092915050565b6000602082019050919050565b600061272d826126c2565b61273781856126cd565b9350612742836126de565b8060005b8381101561277357815161275a88826126fd565b975061276583612715565b925050600181019050612746565b5085935050505092915050565b600060e082019050612795600083018a6126a4565b81810360208301526127a7818961236e565b905081810360408301526127bb818861236e565b90506127ca606083018761249d565b6127d760808301866126b3565b6127e460a083018561257d565b81810360c08301526127f68184612722565b905098975050505050505050565b61280d816125e7565b811461281857600080fd5b50565b60008135905061282a81612804565b92915050565b600080600080600080600060e0888a03121561284f5761284e612257565b5b600061285d8a828b01612412565b975050602061286e8a828b01612412565b965050604061287f8a828b01612448565b95505060606128908a828b01612448565b94505060806128a18a828b0161281b565b93505060a06128b28a828b0161253b565b92505060c06128c38a828b0161253b565b91505092959891949750929550565b600080604083850312156128e9576128e8612257565b5b60006128f785828601612412565b925050602061290885828601612412565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061295957607f821691505b60208210810361296c5761296b612912565b5b50919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b60006129ce602f83612322565b91506129d982612972565b604082019050919050565b600060208201905081810360008301526129fd816129c1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a3e82612427565b9150612a4983612427565b9250828201905080821115612a6157612a60612a04565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612af2602583612322565b9150612afd82612a96565b604082019050919050565b60006020820190508181036000830152612b2181612ae5565b9050919050565b7f45524332305065726d69743a206578706972656420646561646c696e65000000600082015250565b6000612b5e601d83612322565b9150612b6982612b28565b602082019050919050565b60006020820190508181036000830152612b8d81612b51565b9050919050565b600060c082019050612ba9600083018961257d565b612bb660208301886126b3565b612bc360408301876126b3565b612bd0606083018661249d565b612bdd608083018561249d565b612bea60a083018461249d565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e61747572650000600082015250565b6000612c2b601e83612322565b9150612c3682612bf5565b602082019050919050565b60006020820190508181036000830152612c5a81612c1e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612cbd602483612322565b9150612cc882612c61565b604082019050919050565b60006020820190508181036000830152612cec81612cb0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d4f602283612322565b9150612d5a82612cf3565b604082019050919050565b60006020820190508181036000830152612d7e81612d42565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612dbb601d83612322565b9150612dc682612d85565b602082019050919050565b60006020820190508181036000830152612dea81612dae565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e4d602583612322565b9150612e5882612df1565b604082019050919050565b60006020820190508181036000830152612e7c81612e40565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612edf602383612322565b9150612eea82612e83565b604082019050919050565b60006020820190508181036000830152612f0e81612ed2565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612f71602683612322565b9150612f7c82612f15565b604082019050919050565b60006020820190508181036000830152612fa081612f64565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613003602183612322565b915061300e82612fa7565b604082019050919050565b6000602082019050818103600083015261303281612ff6565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613095602283612322565b91506130a082613039565b604082019050919050565b600060208201905081810360008301526130c481613088565b9050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b600061310c6017836130cb565b9150613117826130d6565b601782019050919050565b600061312d82612317565b61313781856130cb565b9350613147818560208601612333565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b60006131896011836130cb565b915061319482613153565b601182019050919050565b60006131aa826130ff565b91506131b68285613122565b91506131c18261317c565b91506131cd8284613122565b91508190509392505050565b600060a0820190506131ee600083018861257d565b6131fb602083018761257d565b613208604083018661257d565b613215606083018561249d565b61322260808301846126b3565b9695505050505050565b7f45524332304361707065643a2063617020657863656564656400000000000000600082015250565b6000613262601983612322565b915061326d8261322c565b602082019050919050565b6000602082019050818103600083015261329181613255565b9050919050565b60006080820190506132ad600083018761257d565b6132ba60208301866125f4565b6132c7604083018561257d565b6132d4606083018461257d565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b6000613342601883612322565b915061334d8261330c565b602082019050919050565b6000602082019050818103600083015261337181613335565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b60006133ae601f83612322565b91506133b982613378565b602082019050919050565b600060208201905081810360008301526133dd816133a1565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b6000613440602283612322565b915061344b826133e4565b604082019050919050565b6000602082019050818103600083015261346f81613433565b9050919050565b600061348182612427565b915061348c83612427565b925082820261349a81612427565b915082820484148315176134b1576134b0612a04565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006134f282612427565b91506000820361350557613504612a04565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b6000613546602083612322565b915061355182613510565b602082019050919050565b6000602082019050818103600083015261357581613539565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006135b2601f83612322565b91506135bd8261357c565b602082019050919050565b600060208201905081810360008301526135e1816135a5565b905091905056fea2646970667358221220775b5237e73fe6991f82b60333d0c71120980d2fd6d3b97a2b6729eb664778f464736f6c63430008130033