[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721IncorrectOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721InsufficientApproval", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC721InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC721InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721InvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC721InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC721InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721NonexistentToken", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_toTokenId", "type": "uint256" } ], "name": "BatchMetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "MetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "string", "name": "uri", "type": "string" } ], "name": "safeMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b506040518060400160405280601981526020017f4d7963656c69756d2052656d697820436f6c6c656374696f6e000000000000008152506040518060400160405280600481526020017f4d524d580000000000000000000000000000000000000000000000000000000081525081600090816200008f919062000324565b508060019081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b61243e806200041b6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80636352211e11610097578063b88d4fde11610066578063b88d4fde14610282578063c87b56dd1461029e578063d204c45e146102ce578063e985e9c5146102ea576100f5565b80636352211e146101e857806370a082311461021857806395d89b4114610248578063a22cb46514610266576100f5565b8063095ea7b3116100d3578063095ea7b31461017857806323b872dd1461019457806342842e0e146101b057806342966c68146101cc576100f5565b806301ffc9a7146100fa57806306fdde031461012a578063081812fc14610148575b600080fd5b610114600480360381019061010f9190611896565b61031a565b60405161012191906118de565b60405180910390f35b61013261032c565b60405161013f9190611989565b60405180910390f35b610162600480360381019061015d91906119e1565b6103be565b60405161016f9190611a4f565b60405180910390f35b610192600480360381019061018d9190611a96565b6103da565b005b6101ae60048036038101906101a99190611ad6565b6103f0565b005b6101ca60048036038101906101c59190611ad6565b6104f2565b005b6101e660048036038101906101e191906119e1565b610512565b005b61020260048036038101906101fd91906119e1565b610529565b60405161020f9190611a4f565b60405180910390f35b610232600480360381019061022d9190611b29565b61053b565b60405161023f9190611b65565b60405180910390f35b6102506105f5565b60405161025d9190611989565b60405180910390f35b610280600480360381019061027b9190611bac565b610687565b005b61029c60048036038101906102979190611d21565b61069d565b005b6102b860048036038101906102b391906119e1565b6106ba565b6040516102c59190611989565b60405180910390f35b6102e860048036038101906102e39190611e45565b6106cc565b005b61030460048036038101906102ff9190611ea1565b610700565b60405161031191906118de565b60405180910390f35b600061032582610794565b9050919050565b60606000805461033b90611f10565b80601f016020809104026020016040519081016040528092919081815260200182805461036790611f10565b80156103b45780601f10610389576101008083540402835291602001916103b4565b820191906000526020600020905b81548152906001019060200180831161039757829003601f168201915b5050505050905090565b60006103c9826107f5565b506103d38261087d565b9050919050565b6103ec82826103e76108ba565b6108c2565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036104625760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016104599190611a4f565b60405180910390fd5b600061047683836104716108ba565b6108d4565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146104ec578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016104e393929190611f41565b60405180910390fd5b50505050565b61050d8383836040518060200160405280600081525061069d565b505050565b6105256000826105206108ba565b6108d4565b5050565b6000610534826107f5565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105ae5760006040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016105a59190611a4f565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606001805461060490611f10565b80601f016020809104026020016040519081016040528092919081815260200182805461063090611f10565b801561067d5780601f106106525761010080835404028352916020019161067d565b820191906000526020600020905b81548152906001019060200180831161066057829003601f168201915b5050505050905090565b6106996106926108ba565b8383610aee565b5050565b6106a88484846103f0565b6106b484848484610c5d565b50505050565b60606106c582610e14565b9050919050565b6000600760008154809291906106e190611fa7565b9190505590506106f18382610f27565b6106fb8183610f45565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806107ee57506107ed82610fa1565b5b9050919050565b60008061080183611083565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361087457826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161086b9190611b65565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b6108cf83838360016110c0565b505050565b6000806108e084611083565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461092257610921818486611285565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109b3576109646000856000806110c0565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610a36576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b5f57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610b569190611a4f565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610c5091906118de565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115610e0e578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02610ca16108ba565b8685856040518563ffffffff1660e01b8152600401610cc39493929190612044565b6020604051808303816000875af1925050508015610cff57506040513d601f19601f82011682018060405250810190610cfc91906120a5565b60015b610d83573d8060008114610d2f576040519150601f19603f3d011682016040523d82523d6000602084013e610d34565b606091505b506000815103610d7b57836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610d729190611a4f565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610e0c57836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610e039190611a4f565b60405180910390fd5b505b50505050565b6060610e1f826107f5565b506000600660008481526020019081526020016000208054610e4090611f10565b80601f0160208091040260200160405190810160405280929190818152602001828054610e6c90611f10565b8015610eb95780601f10610e8e57610100808354040283529160200191610eb9565b820191906000526020600020905b815481529060010190602001808311610e9c57829003601f168201915b505050505090506000610eca611349565b90506000815103610edf578192505050610f22565b600082511115610f14578082604051602001610efc92919061210e565b60405160208183030381529060405292505050610f22565b610f1d84611360565b925050505b919050565b610f418282604051806020016040528060008152506113c9565b5050565b80600660008481526020019081526020016000209081610f6591906122de565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce782604051610f959190611b65565b60405180910390a15050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061106c57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061107c575061107b826113e5565b5b9050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806110f95750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561122d576000611109846107f5565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561117457508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561118757506111858184610700565b155b156111c957826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016111c09190611a4f565b60405180910390fd5b811561122b57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b61129083838361144f565b61134457600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361130557806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016112fc9190611b65565b60405180910390fd5b81816040517f177e802f00000000000000000000000000000000000000000000000000000000815260040161133b9291906123b0565b60405180910390fd5b505050565b606060405180602001604052806000815250905090565b606061136b826107f5565b506000611376611349565b9050600081511161139657604051806020016040528060008152506113c1565b806113a084611510565b6040516020016113b192919061210e565b6040516020818303038152906040525b915050919050565b6113d383836115de565b6113e06000848484610c5d565b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561150757508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806114c857506114c78484610700565b5b8061150657508273ffffffffffffffffffffffffffffffffffffffff166114ee8361087d565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b60606000600161151f846116d7565b01905060008167ffffffffffffffff81111561153e5761153d611bf6565b5b6040519080825280601f01601f1916602001820160405280156115705781602001600182028036833780820191505090505b509050600082602001820190505b6001156115d3578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816115c7576115c66123d9565b5b0494506000850361157e575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116505760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016116479190611a4f565b60405180910390fd5b600061165e838360006108d4565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146116d25760006040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016116c99190611a4f565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611735577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161172b5761172a6123d9565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611772576d04ee2d6d415b85acef81000000008381611768576117676123d9565b5b0492506020810190505b662386f26fc1000083106117a157662386f26fc100008381611797576117966123d9565b5b0492506010810190505b6305f5e10083106117ca576305f5e10083816117c0576117bf6123d9565b5b0492506008810190505b61271083106117ef5761271083816117e5576117e46123d9565b5b0492506004810190505b606483106118125760648381611808576118076123d9565b5b0492506002810190505b600a8310611821576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6118738161183e565b811461187e57600080fd5b50565b6000813590506118908161186a565b92915050565b6000602082840312156118ac576118ab611834565b5b60006118ba84828501611881565b91505092915050565b60008115159050919050565b6118d8816118c3565b82525050565b60006020820190506118f360008301846118cf565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611933578082015181840152602081019050611918565b60008484015250505050565b6000601f19601f8301169050919050565b600061195b826118f9565b6119658185611904565b9350611975818560208601611915565b61197e8161193f565b840191505092915050565b600060208201905081810360008301526119a38184611950565b905092915050565b6000819050919050565b6119be816119ab565b81146119c957600080fd5b50565b6000813590506119db816119b5565b92915050565b6000602082840312156119f7576119f6611834565b5b6000611a05848285016119cc565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611a3982611a0e565b9050919050565b611a4981611a2e565b82525050565b6000602082019050611a646000830184611a40565b92915050565b611a7381611a2e565b8114611a7e57600080fd5b50565b600081359050611a9081611a6a565b92915050565b60008060408385031215611aad57611aac611834565b5b6000611abb85828601611a81565b9250506020611acc858286016119cc565b9150509250929050565b600080600060608486031215611aef57611aee611834565b5b6000611afd86828701611a81565b9350506020611b0e86828701611a81565b9250506040611b1f868287016119cc565b9150509250925092565b600060208284031215611b3f57611b3e611834565b5b6000611b4d84828501611a81565b91505092915050565b611b5f816119ab565b82525050565b6000602082019050611b7a6000830184611b56565b92915050565b611b89816118c3565b8114611b9457600080fd5b50565b600081359050611ba681611b80565b92915050565b60008060408385031215611bc357611bc2611834565b5b6000611bd185828601611a81565b9250506020611be285828601611b97565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611c2e8261193f565b810181811067ffffffffffffffff82111715611c4d57611c4c611bf6565b5b80604052505050565b6000611c6061182a565b9050611c6c8282611c25565b919050565b600067ffffffffffffffff821115611c8c57611c8b611bf6565b5b611c958261193f565b9050602081019050919050565b82818337600083830152505050565b6000611cc4611cbf84611c71565b611c56565b905082815260208101848484011115611ce057611cdf611bf1565b5b611ceb848285611ca2565b509392505050565b600082601f830112611d0857611d07611bec565b5b8135611d18848260208601611cb1565b91505092915050565b60008060008060808587031215611d3b57611d3a611834565b5b6000611d4987828801611a81565b9450506020611d5a87828801611a81565b9350506040611d6b878288016119cc565b925050606085013567ffffffffffffffff811115611d8c57611d8b611839565b5b611d9887828801611cf3565b91505092959194509250565b600067ffffffffffffffff821115611dbf57611dbe611bf6565b5b611dc88261193f565b9050602081019050919050565b6000611de8611de384611da4565b611c56565b905082815260208101848484011115611e0457611e03611bf1565b5b611e0f848285611ca2565b509392505050565b600082601f830112611e2c57611e2b611bec565b5b8135611e3c848260208601611dd5565b91505092915050565b60008060408385031215611e5c57611e5b611834565b5b6000611e6a85828601611a81565b925050602083013567ffffffffffffffff811115611e8b57611e8a611839565b5b611e9785828601611e17565b9150509250929050565b60008060408385031215611eb857611eb7611834565b5b6000611ec685828601611a81565b9250506020611ed785828601611a81565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611f2857607f821691505b602082108103611f3b57611f3a611ee1565b5b50919050565b6000606082019050611f566000830186611a40565b611f636020830185611b56565b611f706040830184611a40565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611fb2826119ab565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611fe457611fe3611f78565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b600061201682611fef565b6120208185611ffa565b9350612030818560208601611915565b6120398161193f565b840191505092915050565b60006080820190506120596000830187611a40565b6120666020830186611a40565b6120736040830185611b56565b8181036060830152612085818461200b565b905095945050505050565b60008151905061209f8161186a565b92915050565b6000602082840312156120bb576120ba611834565b5b60006120c984828501612090565b91505092915050565b600081905092915050565b60006120e8826118f9565b6120f281856120d2565b9350612102818560208601611915565b80840191505092915050565b600061211a82856120dd565b915061212682846120dd565b91508190509392505050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026121947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612157565b61219e8683612157565b95508019841693508086168417925050509392505050565b6000819050919050565b60006121db6121d66121d1846119ab565b6121b6565b6119ab565b9050919050565b6000819050919050565b6121f5836121c0565b612209612201826121e2565b848454612164565b825550505050565b600090565b61221e612211565b6122298184846121ec565b505050565b5b8181101561224d57612242600082612216565b60018101905061222f565b5050565b601f8211156122925761226381612132565b61226c84612147565b8101602085101561227b578190505b61228f61228785612147565b83018261222e565b50505b505050565b600082821c905092915050565b60006122b560001984600802612297565b1980831691505092915050565b60006122ce83836122a4565b9150826002028217905092915050565b6122e7826118f9565b67ffffffffffffffff811115612300576122ff611bf6565b5b61230a8254611f10565b612315828285612251565b600060209050601f8311600181146123485760008415612336578287015190505b61234085826122c2565b8655506123a8565b601f19841661235686612132565b60005b8281101561237e57848901518255600182019150602085019450602081019050612359565b8683101561239b5784890151612397601f8916826122a4565b8355505b6001600288020188555050505b505050505050565b60006040820190506123c56000830185611a40565b6123d26020830184611b56565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea264697066735822122025e652a3d997dfa9ce85a8d246836622d97f960fa5bc725934a6deddf84a748f64736f6c63430008180033