[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC1155InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC1155InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "idsLength", "type": "uint256" }, { "internalType": "uint256", "name": "valuesLength", "type": "uint256" } ], "name": "ERC1155InvalidArrayLength", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC1155InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC1155InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC1155InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC1155MissingApprovalForAll", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "OPERATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newBaseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
61010060405260566080818152906200224860a0396004906200002390826200076f565b50600060055560016006553480156200003b57600080fd5b5060405180608001604052806056815260200162002248605691396200006181620000dd565b506200008e7f523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c33620000ef565b50620000c033600654600160405180604001604052806002815260200161060f60f31b815250620001a260201b60201c565b60058054906000620000d28362000851565b919050555062000a18565b6002620000eb82826200076f565b5050565b60008281526003602090815260408083206001600160a01b038516845290915281205460ff16620001985760008381526003602090815260408083206001600160a01b03861684529091529020805460ff191660011790556200014f3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016200019c565b5060005b92915050565b6001600160a01b038416620001d257604051632bfa23e760e11b8152600060048201526024015b60405180910390fd5b60408051600180825260208201869052818301908152606082018590526080820190925290620002076000878484876200020f565b505050505050565b6200021d8585858562000272565b6001600160a01b038416156200026b57825133906001036200025b576020848101519084015162000253838989858589620004a0565b505062000207565b62000207818787878787620005da565b5050505050565b8051825114620002a35781518151604051635b05999160e01b815260048101929092526024820152604401620001c9565b3360005b8351811015620003bc576020818102858101820151908501909101516001600160a01b038816156200035e576000828152602081815260408083206001600160a01b038c1684529091529020548181101562000337576040516303dee4c560e01b81526001600160a01b038a166004820152602481018290526044810183905260648101849052608401620001c9565b6000838152602081815260408083206001600160a01b038d16845290915290209082900390555b6001600160a01b03871615620003a6576000828152602081815260408083206001600160a01b038b16845290915281208054839290620003a09084906200086d565b90915550505b505080620003b49062000851565b9050620002a7565b508251600103620004405760208301516000906020840151909150856001600160a01b0316876001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62858560405162000430929190918252602082015260400190565b60405180910390a450506200026b565b836001600160a01b0316856001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405162000491929190620008c0565b60405180910390a45050505050565b6001600160a01b0384163b15620002075760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190620004e790899089908890889088906004016200093a565b6020604051808303816000875af192505050801562000525575060408051601f3d908101601f19168201909252620005229181019062000981565b60015b62000593573d80801562000556576040519150601f19603f3d011682016040523d82523d6000602084013e6200055b565b606091505b5080516000036200058b57604051632bfa23e760e11b81526001600160a01b0386166004820152602401620001c9565b805181602001fd5b6001600160e01b0319811663f23a6e6160e01b14620005d157604051632bfa23e760e11b81526001600160a01b0386166004820152602401620001c9565b50505050505050565b6001600160a01b0384163b15620002075760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190620006219089908990889088908890600401620009b4565b6020604051808303816000875af19250505080156200065f575060408051601f3d908101601f191682019092526200065c9181019062000981565b60015b62000690573d80801562000556576040519150601f19603f3d011682016040523d82523d6000602084013e6200055b565b6001600160e01b0319811663bc197c8160e01b14620005d157604051632bfa23e760e11b81526001600160a01b0386166004820152602401620001c9565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620006f957607f821691505b6020821081036200071a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200076a57600081815260208120601f850160051c81016020861015620007495750805b601f850160051c820191505b81811015620002075782815560010162000755565b505050565b81516001600160401b038111156200078b576200078b620006ce565b620007a3816200079c8454620006e4565b8462000720565b602080601f831160018114620007db5760008415620007c25750858301515b600019600386901b1c1916600185901b17855562000207565b600085815260208120601f198616915b828110156200080c57888601518255948401946001909101908401620007eb565b50858210156200082b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b6000600182016200086657620008666200083b565b5060010190565b808201808211156200019c576200019c6200083b565b600081518084526020808501945080840160005b83811015620008b55781518752958201959082019060010162000897565b509495945050505050565b604081526000620008d5604083018562000883565b8281036020840152620008e9818562000883565b95945050505050565b6000815180845260005b818110156200091a57602081850181015186830182015201620008fc565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906200097690830184620008f2565b979650505050505050565b6000602082840312156200099457600080fd5b81516001600160e01b031981168114620009ad57600080fd5b9392505050565b6001600160a01b0386811682528516602082015260a060408201819052600090620009e29083018662000883565b8281036060840152620009f6818662000883565b9050828103608084015262000a0c8185620008f2565b98975050505050505050565b6118208062000a286000396000f3fe608060405234801561001057600080fd5b506004361061010a5760003560e01c806355f804b3116100a2578063a22cb46511610071578063a22cb4651461024b578063a6f2ae3a1461025e578063d547741f14610266578063e985e9c514610279578063f242432a1461028c57600080fd5b806355f804b3146101f657806391d1485414610209578063983d27371461021c578063a217fddf1461024357600080fd5b80632eb2c2d6116100de5780632eb2c2d61461019b5780632f2ff15d146101b057806336568abe146101c35780634e1273f4146101d657600080fd5b8062fdd58e1461010f57806301ffc9a7146101355780630e89341c14610158578063248a9ca314610178575b600080fd5b61012261011d366004610f9f565b61029f565b6040519081526020015b60405180910390f35b610148610143366004610fdf565b6102c7565b604051901515815260200161012c565b61016b610166366004611003565b6102d2565b60405161012c919061106c565b610122610186366004611003565b60009081526003602052604090206001015490565b6101ae6101a93660046111cd565b610306565b005b6101ae6101be366004611277565b610372565b6101ae6101d1366004611277565b61039d565b6101e96101e43660046112a3565b6103d5565b60405161012c919061139e565b6101ae6102043660046113b1565b6104aa565b610148610217366004611277565b6104e0565b6101227f523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c81565b610122600081565b6101ae610259366004611402565b61050b565b6101ae61051a565b6101ae610274366004611277565b610545565b61014861028736600461143e565b61056a565b6101ae61029a366004611468565b610598565b6000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b60006102c1826105f7565b606060046102df8361061c565b6040516020016102f0929190611507565b6040516020818303038152906040529050919050565b336001600160a01b03861681148015906103275750610325868261056a565b155b1561035d5760405163711bec9160e11b81526001600160a01b038083166004830152871660248201526044015b60405180910390fd5b61036a86868686866106af565b505050505050565b60008281526003602052604090206001015461038d81610716565b6103978383610723565b50505050565b6001600160a01b03811633146103c65760405163334bd91960e11b815260040160405180910390fd5b6103d082826107b7565b505050565b606081518351146104065781518351604051635b05999160e01b815260048101929092526024820152604401610354565b6000835167ffffffffffffffff8111156104225761042261107f565b60405190808252806020026020018201604052801561044b578160200160208202803683370190505b50905060005b84518110156104a2576020808202860101516104759060208084028701015161029f565b8282815181106104875761048761159e565b602090810291909101015261049b816115ca565b9050610451565b509392505050565b7f523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c6104d481610716565b60046103d08382611629565b60009182526003602090815260408084206001600160a01b0393909316845291905290205460ff1690565b610516338383610824565b5050565b61054333600654600160405180604001604052806002815260200161060f60f31b8152506108ba565b565b60008281526003602052604090206001015461056081610716565b61039783836107b7565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b336001600160a01b03861681148015906105b957506105b7868261056a565b155b156105ea5760405163711bec9160e11b81526001600160a01b03808316600483015287166024820152604401610354565b61036a8686868686610917565b60006001600160e01b03198216637965db0b60e01b14806102c157506102c1826109a5565b60606000610629836109f5565b600101905060008167ffffffffffffffff8111156106495761064961107f565b6040519080825280601f01601f191660200182016040528015610673576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461067d57509392505050565b6001600160a01b0384166106d957604051632bfa23e760e11b815260006004820152602401610354565b6001600160a01b03851661070257604051626a0d4560e21b815260006004820152602401610354565b61070f8585858585610acd565b5050505050565b6107208133610b20565b50565b600061072f83836104e0565b6107af5760008381526003602090815260408083206001600160a01b03861684529091529020805460ff191660011790556107673390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016102c1565b5060006102c1565b60006107c383836104e0565b156107af5760008381526003602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016102c1565b6001600160a01b03821661084d5760405162ced3e160e81b815260006004820152602401610354565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0384166108e457604051632bfa23e760e11b815260006004820152602401610354565b6040805160018082526020820186905281830190815260608201859052608082019092529061036a600087848487610acd565b6001600160a01b03841661094157604051632bfa23e760e11b815260006004820152602401610354565b6001600160a01b03851661096a57604051626a0d4560e21b815260006004820152602401610354565b6040805160018082526020820186905281830190815260608201859052608082019092529061099c8787848487610acd565b50505050505050565b60006001600160e01b03198216636cdb3d1360e11b14806109d657506001600160e01b031982166303a24d0760e21b145b806102c157506301ffc9a760e01b6001600160e01b03198316146102c1565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610a345772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610a60576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610a7e57662386f26fc10000830492506010015b6305f5e1008310610a96576305f5e100830492506008015b6127108310610aaa57612710830492506004015b60648310610abc576064830492506002015b600a83106102c15760010192915050565b610ad985858585610b59565b6001600160a01b0384161561070f5782513390600103610b125760208481015190840151610b0b838989858589610d76565b505061036a565b61036a818787878787610e9a565b610b2a82826104e0565b6105165760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610354565b8051825114610b885781518151604051635b05999160e01b815260048101929092526024820152604401610354565b3360005b8351811015610c97576020818102858101820151908501909101516001600160a01b03881615610c3f576000828152602081815260408083206001600160a01b038c16845290915290205481811015610c18576040516303dee4c560e01b81526001600160a01b038a166004820152602481018290526044810183905260648101849052608401610354565b6000838152602081815260408083206001600160a01b038d16845290915290209082900390555b6001600160a01b03871615610c84576000828152602081815260408083206001600160a01b038b16845290915281208054839290610c7e9084906116e9565b90915550505b505080610c90906115ca565b9050610b8c565b508251600103610d185760208301516000906020840151909150856001600160a01b0316876001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051610d09929190918252602082015260400190565b60405180910390a4505061070f565b836001600160a01b0316856001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051610d679291906116fc565b60405180910390a45050505050565b6001600160a01b0384163b1561036a5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190610dba908990899088908890889060040161172a565b6020604051808303816000875af1925050508015610df5575060408051601f3d908101601f19168201909252610df29181019061176f565b60015b610e5e573d808015610e23576040519150601f19603f3d011682016040523d82523d6000602084013e610e28565b606091505b508051600003610e5657604051632bfa23e760e11b81526001600160a01b0386166004820152602401610354565b805181602001fd5b6001600160e01b0319811663f23a6e6160e01b1461099c57604051632bfa23e760e11b81526001600160a01b0386166004820152602401610354565b6001600160a01b0384163b1561036a5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190610ede908990899088908890889060040161178c565b6020604051808303816000875af1925050508015610f19575060408051601f3d908101601f19168201909252610f169181019061176f565b60015b610f47573d808015610e23576040519150601f19603f3d011682016040523d82523d6000602084013e610e28565b6001600160e01b0319811663bc197c8160e01b1461099c57604051632bfa23e760e11b81526001600160a01b0386166004820152602401610354565b80356001600160a01b0381168114610f9a57600080fd5b919050565b60008060408385031215610fb257600080fd5b610fbb83610f83565b946020939093013593505050565b6001600160e01b03198116811461072057600080fd5b600060208284031215610ff157600080fd5b8135610ffc81610fc9565b9392505050565b60006020828403121561101557600080fd5b5035919050565b60005b8381101561103757818101518382015260200161101f565b50506000910152565b6000815180845261105881602086016020860161101c565b601f01601f19169290920160200192915050565b602081526000610ffc6020830184611040565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156110be576110be61107f565b604052919050565b600067ffffffffffffffff8211156110e0576110e061107f565b5060051b60200190565b600082601f8301126110fb57600080fd5b8135602061111061110b836110c6565b611095565b82815260059290921b8401810191818101908684111561112f57600080fd5b8286015b8481101561114a5780358352918301918301611133565b509695505050505050565b600067ffffffffffffffff83111561116f5761116f61107f565b611182601f8401601f1916602001611095565b905082815283838301111561119657600080fd5b828260208301376000602084830101529392505050565b600082601f8301126111be57600080fd5b610ffc83833560208501611155565b600080600080600060a086880312156111e557600080fd5b6111ee86610f83565b94506111fc60208701610f83565b9350604086013567ffffffffffffffff8082111561121957600080fd5b61122589838a016110ea565b9450606088013591508082111561123b57600080fd5b61124789838a016110ea565b9350608088013591508082111561125d57600080fd5b5061126a888289016111ad565b9150509295509295909350565b6000806040838503121561128a57600080fd5b8235915061129a60208401610f83565b90509250929050565b600080604083850312156112b657600080fd5b823567ffffffffffffffff808211156112ce57600080fd5b818501915085601f8301126112e257600080fd5b813560206112f261110b836110c6565b82815260059290921b8401810191818101908984111561131157600080fd5b948201945b838610156113365761132786610f83565b82529482019490820190611316565b9650508601359250508082111561134c57600080fd5b50611359858286016110ea565b9150509250929050565b600081518084526020808501945080840160005b8381101561139357815187529582019590820190600101611377565b509495945050505050565b602081526000610ffc6020830184611363565b6000602082840312156113c357600080fd5b813567ffffffffffffffff8111156113da57600080fd5b8201601f810184136113eb57600080fd5b6113fa84823560208401611155565b949350505050565b6000806040838503121561141557600080fd5b61141e83610f83565b91506020830135801515811461143357600080fd5b809150509250929050565b6000806040838503121561145157600080fd5b61145a83610f83565b915061129a60208401610f83565b600080600080600060a0868803121561148057600080fd5b61148986610f83565b945061149760208701610f83565b93506040860135925060608601359150608086013567ffffffffffffffff8111156114c157600080fd5b61126a888289016111ad565b600181811c908216806114e157607f821691505b60208210810361150157634e487b7160e01b600052602260045260246000fd5b50919050565b6000808454611515816114cd565b6001828116801561152d576001811461154257611571565b60ff1984168752821515830287019450611571565b8860005260208060002060005b858110156115685781548a82015290840190820161154f565b50505082870194505b50505050835161158581836020880161101c565b64173539b7b760d91b9101908152600501949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016115dc576115dc6115b4565b5060010190565b601f8211156103d057600081815260208120601f850160051c8101602086101561160a5750805b601f850160051c820191505b8181101561036a57828155600101611616565b815167ffffffffffffffff8111156116435761164361107f565b6116578161165184546114cd565b846115e3565b602080601f83116001811461168c57600084156116745750858301515b600019600386901b1c1916600185901b17855561036a565b600085815260208120601f198616915b828110156116bb5788860151825594840194600190910190840161169c565b50858210156116d95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156102c1576102c16115b4565b60408152600061170f6040830185611363565b82810360208401526117218185611363565b95945050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061176490830184611040565b979650505050505050565b60006020828403121561178157600080fd5b8151610ffc81610fc9565b6001600160a01b0386811682528516602082015260a0604082018190526000906117b890830186611363565b82810360608401526117ca8186611363565b905082810360808401526117de8185611040565b9897505050505050505056fea2646970667358221220cf2e23965dd4fd59b53351d09e36c442944fbe0792786b22539a334f2c01767064736f6c6343000814003368747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f536f746154656b2d4461745472616e322f54617070546f6b656e2f726566732f68656164732f6d61696e2f6d657461646174612f