{"abi":[{"type":"constructor","inputs":[],"stateMutability":"payable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"giveToken","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"curTokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x600960808181526826b7b1b5aa37b5b2b760b91b60a081905261010060405260c092835260e05233915f6100338382610168565b5060016100408282610168565b5050506001600160a01b03811661007057604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100798161007f565b50610222565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806100f857607f821691505b60208210810361011657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561016357805f5260205f20601f840160051c810160208510156101415750805b601f840160051c820191505b81811015610160575f815560010161014d565b50505b505050565b81516001600160401b03811115610181576101816100d0565b6101958161018f84546100e4565b8461011c565b6020601f8211600181146101c7575f83156101b05750848201515b5f19600385901b1c1916600184901b178455610160565b5f84815260208120601f198516915b828110156101f657878501518255602094850194600190920191016101d6565b508482101561021357868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6116a38061022f5f395ff3fe608060405234801561000f575f5ffd5b5060043610610115575f3560e01c806370a08231116100ad578063a22cb4651161007d578063c87b56dd11610063578063c87b56dd14610264578063e985e9c514610277578063f2fde38b146102bf575f5ffd5b8063a22cb4651461023e578063b88d4fde14610251575f5ffd5b806370a08231146101ef578063715018a6146102105780638da5cb5b1461021857806395d89b4114610236575f5ffd5b8063193f974c116100e8578063193f974c146101a357806323b872dd146101b657806342842e0e146101c95780636352211e146101dc575f5ffd5b806301ffc9a71461011957806306fdde0314610141578063081812fc14610156578063095ea7b31461018e575b5f5ffd5b61012c610127366004611298565b6102d2565b60405190151581526020015b60405180910390f35b6101496103b6565b60405161013891906112ff565b610169610164366004611311565b610445565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610138565b6101a161019c366004611350565b610479565b005b6101a16101b1366004611350565b610488565b6101a16101c4366004611378565b61049a565b6101a16101d7366004611378565b61058e565b6101696101ea366004611311565b6105ad565b6102026101fd3660046113b2565b6105b7565b604051908152602001610138565b6101a161062f565b60065473ffffffffffffffffffffffffffffffffffffffff16610169565b610149610642565b6101a161024c3660046113cb565b610651565b6101a161025f366004611431565b61065c565b610149610272366004611311565b610674565b61012c61028536600461154b565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260056020908152604080832093909416825291909152205460ff1690565b6101a16102cd3660046113b2565b6106e5565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000148061036457507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b806103b057507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60605f80546103c49061157c565b80601f01602080910402602001604051908101604052809291908181526020018280546103f09061157c565b801561043b5780601f106104125761010080835404028352916020019161043b565b820191905f5260205f20905b81548152906001019060200180831161041e57829003601f168201915b5050505050905090565b5f61044f82610748565b505f8281526004602052604090205473ffffffffffffffffffffffffffffffffffffffff166103b0565b6104848282336107a6565b5050565b6104906107b3565b6104848282610806565b73ffffffffffffffffffffffffffffffffffffffff82166104ee576040517f64a0ae920000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b5f6104fa8383336108b3565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610588576040517f64283d7b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808616600483015260248201849052821660448201526064016104e5565b50505050565b6105a883838360405180602001604052805f81525061065c565b505050565b5f6103b082610748565b5f73ffffffffffffffffffffffffffffffffffffffff8216610607576040517f89c62b640000000000000000000000000000000000000000000000000000000081525f60048201526024016104e5565b5073ffffffffffffffffffffffffffffffffffffffff165f9081526003602052604090205490565b6106376107b3565b6106405f610a2a565b565b6060600180546103c49061157c565b610484338383610aa0565b61066784848461049a565b6105883385858585610b9c565b606061067f82610748565b505f61069560408051602081019091525f815290565b90505f8151116106b35760405180602001604052805f8152506106de565b806106bd84610d92565b6040516020016106ce9291906115e4565b6040516020818303038152906040525b9392505050565b6106ed6107b3565b73ffffffffffffffffffffffffffffffffffffffff811661073c576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024016104e5565b61074581610a2a565b50565b5f8181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff16806103b0576040517f7e273289000000000000000000000000000000000000000000000000000000008152600481018490526024016104e5565b6105a88383836001610e4e565b60065473ffffffffffffffffffffffffffffffffffffffff163314610640576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016104e5565b73ffffffffffffffffffffffffffffffffffffffff8216610855576040517f64a0ae920000000000000000000000000000000000000000000000000000000081525f60048201526024016104e5565b5f61086183835f6108b3565b905073ffffffffffffffffffffffffffffffffffffffff8116156105a8576040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081525f60048201526024016104e5565b5f8281526002602052604081205473ffffffffffffffffffffffffffffffffffffffff908116908316156108ec576108ec818486611016565b73ffffffffffffffffffffffffffffffffffffffff81161561095f576109145f855f5f610e4e565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190555b73ffffffffffffffffffffffffffffffffffffffff8516156109a75773ffffffffffffffffffffffffffffffffffffffff85165f908152600360205260409020805460010190555b5f8481526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff89811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6006805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b73ffffffffffffffffffffffffffffffffffffffff8216610b05576040517f5b08ba1800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526024016104e5565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff83163b15610d8b576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063150b7a0290610c119088908890879087906004016115f8565b6020604051808303815f875af1925050508015610c69575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610c6691810190611652565b60015b610cf6573d808015610c96576040519150601f19603f3d011682016040523d82523d5f602084013e610c9b565b606091505b5080515f03610cee576040517f64a0ae9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016104e5565b805181602001fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167f150b7a020000000000000000000000000000000000000000000000000000000014610d89576040517f64a0ae9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016104e5565b505b5050505050565b60605f610d9e836110c6565b60010190505f8167ffffffffffffffff811115610dbd57610dbd611404565b6040519080825280601f01601f191660200182016040528015610de7576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610df157509392505050565b8080610e6f575073ffffffffffffffffffffffffffffffffffffffff821615155b15610fc2575f610e7e84610748565b905073ffffffffffffffffffffffffffffffffffffffff831615801590610ed157508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610f0f575073ffffffffffffffffffffffffffffffffffffffff8082165f9081526005602090815260408083209387168352929052205460ff16155b15610f5e576040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024016104e5565b8115610fc057838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b50505f90815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6110218383836111a7565b6105a85773ffffffffffffffffffffffffffffffffffffffff8316611075576040517f7e273289000000000000000000000000000000000000000000000000000000008152600481018290526024016104e5565b6040517f177e802f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152602481018290526044016104e5565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061110e577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831061113a576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061115857662386f26fc10000830492506010015b6305f5e1008310611170576305f5e100830492506008015b612710831061118457612710830492506004015b60648310611196576064830492506002015b600a83106103b05760010192915050565b5f73ffffffffffffffffffffffffffffffffffffffff83161580159061126357508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611233575073ffffffffffffffffffffffffffffffffffffffff8085165f9081526005602090815260408083209387168352929052205460ff165b8061126357505f8281526004602052604090205473ffffffffffffffffffffffffffffffffffffffff8481169116145b949350505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610745575f5ffd5b5f602082840312156112a8575f5ffd5b81356106de8161126b565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6106de60208301846112b3565b5f60208284031215611321575f5ffd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461134b575f5ffd5b919050565b5f5f60408385031215611361575f5ffd5b61136a83611328565b946020939093013593505050565b5f5f5f6060848603121561138a575f5ffd5b61139384611328565b92506113a160208501611328565b929592945050506040919091013590565b5f602082840312156113c2575f5ffd5b6106de82611328565b5f5f604083850312156113dc575f5ffd5b6113e583611328565b9150602083013580151581146113f9575f5ffd5b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f5f5f5f60808587031215611444575f5ffd5b61144d85611328565b935061145b60208601611328565b925060408501359150606085013567ffffffffffffffff81111561147d575f5ffd5b8501601f8101871361148d575f5ffd5b803567ffffffffffffffff8111156114a7576114a7611404565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561151357611513611404565b60405281815282820160200189101561152a575f5ffd5b816020840160208301375f6020838301015280935050505092959194509250565b5f5f6040838503121561155c575f5ffd5b61156583611328565b915061157360208401611328565b90509250929050565b600181811c9082168061159057607f821691505b6020821081036115c7577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f81518060208401855e5f93019283525090919050565b5f6112636115f283866115cd565b846115cd565b73ffffffffffffffffffffffffffffffffffffffff8516815273ffffffffffffffffffffffffffffffffffffffff84166020820152826040820152608060608201525f61164860808301846112b3565b9695505050505050565b5f60208284031215611662575f5ffd5b81516106de8161126b56fea2646970667358221220a1ba687ee2a736f0c534a89f2475491ea7fcc9d2dacc1e995701a4030641298564736f6c634300081c0033","sourceMap":"1380:113:93:-:0;338:445:85;1380:113:93;;;-1:-1:-1;;;1380:113:93;;;;;338:445:85;1380:113:93;;;;;;;376:10:85;;-1:-1:-1;1446:13:93;338:445:85;-1:-1:-1;1446:13:93;:::i;:::-;-1:-1:-1;1469:7:93;:17;1479:7;1469;:17;:::i;:::-;-1:-1:-1;;;;;;;;1273:26:87;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:87;;1350:1;1322:31;;;2801:51:133;2774:18;;1322:31:87;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;338:445:85;;2912:187:87;3004:6;;;-1:-1:-1;;;;;3020:17:87;;;-1:-1:-1;;;;;;3020:17:87;;;;;;;3052:40;;3004:6;;;3020:17;3004:6;;3052:40;;2985:16;;3052:40;2975:124;2912:187;:::o;14:127:133:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:518::-;759:2;754:3;751:11;748:421;;;795:5;792:1;785:16;839:4;836:1;826:18;909:2;897:10;893:19;890:1;886:27;880:4;876:38;945:4;933:10;930:20;927:47;;;-1:-1:-1;968:4:133;927:47;1023:2;1018:3;1014:12;1011:1;1007:20;1001:4;997:31;987:41;;1078:81;1096:2;1089:5;1086:13;1078:81;;;1155:1;1141:16;;1122:1;1111:13;1078:81;;;1082:3;;748:421;657:518;;;:::o;1351:1299::-;1471:10;;-1:-1:-1;;;;;1493:30:133;;1490:56;;;1526:18;;:::i;:::-;1555:97;1645:6;1605:38;1637:4;1631:11;1605:38;:::i;:::-;1599:4;1555:97;:::i;:::-;1701:4;1732:2;1721:14;;1749:1;1744:649;;;;2437:1;2454:6;2451:89;;;-1:-1:-1;2506:19:133;;;2500:26;2451:89;-1:-1:-1;;1308:1:133;1304:11;;;1300:24;1296:29;1286:40;1332:1;1328:11;;;1283:57;2553:81;;1714:930;;1744:649;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1780:20:133;;;1898:222;1912:7;1909:1;1906:14;1898:222;;;1994:19;;;1988:26;1973:42;;2101:4;2086:20;;;;2054:1;2042:14;;;;1928:12;1898:222;;;1902:3;2148:6;2139:7;2136:19;2133:201;;;2209:19;;;2203:26;-1:-1:-1;;2292:1:133;2288:14;;;2304:3;2284:24;2280:37;2276:42;2261:58;2246:74;;2133:201;-1:-1:-1;;;;2380:1:133;2364:14;;;2360:22;2347:36;;-1:-1:-1;1351:1299:133:o;2655:203::-;338:445:85;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610115575f3560e01c806370a08231116100ad578063a22cb4651161007d578063c87b56dd11610063578063c87b56dd14610264578063e985e9c514610277578063f2fde38b146102bf575f5ffd5b8063a22cb4651461023e578063b88d4fde14610251575f5ffd5b806370a08231146101ef578063715018a6146102105780638da5cb5b1461021857806395d89b4114610236575f5ffd5b8063193f974c116100e8578063193f974c146101a357806323b872dd146101b657806342842e0e146101c95780636352211e146101dc575f5ffd5b806301ffc9a71461011957806306fdde0314610141578063081812fc14610156578063095ea7b31461018e575b5f5ffd5b61012c610127366004611298565b6102d2565b60405190151581526020015b60405180910390f35b6101496103b6565b60405161013891906112ff565b610169610164366004611311565b610445565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610138565b6101a161019c366004611350565b610479565b005b6101a16101b1366004611350565b610488565b6101a16101c4366004611378565b61049a565b6101a16101d7366004611378565b61058e565b6101696101ea366004611311565b6105ad565b6102026101fd3660046113b2565b6105b7565b604051908152602001610138565b6101a161062f565b60065473ffffffffffffffffffffffffffffffffffffffff16610169565b610149610642565b6101a161024c3660046113cb565b610651565b6101a161025f366004611431565b61065c565b610149610272366004611311565b610674565b61012c61028536600461154b565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260056020908152604080832093909416825291909152205460ff1690565b6101a16102cd3660046113b2565b6106e5565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000148061036457507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b806103b057507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60605f80546103c49061157c565b80601f01602080910402602001604051908101604052809291908181526020018280546103f09061157c565b801561043b5780601f106104125761010080835404028352916020019161043b565b820191905f5260205f20905b81548152906001019060200180831161041e57829003601f168201915b5050505050905090565b5f61044f82610748565b505f8281526004602052604090205473ffffffffffffffffffffffffffffffffffffffff166103b0565b6104848282336107a6565b5050565b6104906107b3565b6104848282610806565b73ffffffffffffffffffffffffffffffffffffffff82166104ee576040517f64a0ae920000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b5f6104fa8383336108b3565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610588576040517f64283d7b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808616600483015260248201849052821660448201526064016104e5565b50505050565b6105a883838360405180602001604052805f81525061065c565b505050565b5f6103b082610748565b5f73ffffffffffffffffffffffffffffffffffffffff8216610607576040517f89c62b640000000000000000000000000000000000000000000000000000000081525f60048201526024016104e5565b5073ffffffffffffffffffffffffffffffffffffffff165f9081526003602052604090205490565b6106376107b3565b6106405f610a2a565b565b6060600180546103c49061157c565b610484338383610aa0565b61066784848461049a565b6105883385858585610b9c565b606061067f82610748565b505f61069560408051602081019091525f815290565b90505f8151116106b35760405180602001604052805f8152506106de565b806106bd84610d92565b6040516020016106ce9291906115e4565b6040516020818303038152906040525b9392505050565b6106ed6107b3565b73ffffffffffffffffffffffffffffffffffffffff811661073c576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024016104e5565b61074581610a2a565b50565b5f8181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff16806103b0576040517f7e273289000000000000000000000000000000000000000000000000000000008152600481018490526024016104e5565b6105a88383836001610e4e565b60065473ffffffffffffffffffffffffffffffffffffffff163314610640576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016104e5565b73ffffffffffffffffffffffffffffffffffffffff8216610855576040517f64a0ae920000000000000000000000000000000000000000000000000000000081525f60048201526024016104e5565b5f61086183835f6108b3565b905073ffffffffffffffffffffffffffffffffffffffff8116156105a8576040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081525f60048201526024016104e5565b5f8281526002602052604081205473ffffffffffffffffffffffffffffffffffffffff908116908316156108ec576108ec818486611016565b73ffffffffffffffffffffffffffffffffffffffff81161561095f576109145f855f5f610e4e565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190555b73ffffffffffffffffffffffffffffffffffffffff8516156109a75773ffffffffffffffffffffffffffffffffffffffff85165f908152600360205260409020805460010190555b5f8481526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff89811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6006805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b73ffffffffffffffffffffffffffffffffffffffff8216610b05576040517f5b08ba1800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526024016104e5565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff83163b15610d8b576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063150b7a0290610c119088908890879087906004016115f8565b6020604051808303815f875af1925050508015610c69575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610c6691810190611652565b60015b610cf6573d808015610c96576040519150601f19603f3d011682016040523d82523d5f602084013e610c9b565b606091505b5080515f03610cee576040517f64a0ae9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016104e5565b805181602001fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167f150b7a020000000000000000000000000000000000000000000000000000000014610d89576040517f64a0ae9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016104e5565b505b5050505050565b60605f610d9e836110c6565b60010190505f8167ffffffffffffffff811115610dbd57610dbd611404565b6040519080825280601f01601f191660200182016040528015610de7576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610df157509392505050565b8080610e6f575073ffffffffffffffffffffffffffffffffffffffff821615155b15610fc2575f610e7e84610748565b905073ffffffffffffffffffffffffffffffffffffffff831615801590610ed157508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610f0f575073ffffffffffffffffffffffffffffffffffffffff8082165f9081526005602090815260408083209387168352929052205460ff16155b15610f5e576040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024016104e5565b8115610fc057838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b50505f90815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6110218383836111a7565b6105a85773ffffffffffffffffffffffffffffffffffffffff8316611075576040517f7e273289000000000000000000000000000000000000000000000000000000008152600481018290526024016104e5565b6040517f177e802f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152602481018290526044016104e5565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061110e577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831061113a576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061115857662386f26fc10000830492506010015b6305f5e1008310611170576305f5e100830492506008015b612710831061118457612710830492506004015b60648310611196576064830492506002015b600a83106103b05760010192915050565b5f73ffffffffffffffffffffffffffffffffffffffff83161580159061126357508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611233575073ffffffffffffffffffffffffffffffffffffffff8085165f9081526005602090815260408083209387168352929052205460ff165b8061126357505f8281526004602052604090205473ffffffffffffffffffffffffffffffffffffffff8481169116145b949350505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610745575f5ffd5b5f602082840312156112a8575f5ffd5b81356106de8161126b565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6106de60208301846112b3565b5f60208284031215611321575f5ffd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461134b575f5ffd5b919050565b5f5f60408385031215611361575f5ffd5b61136a83611328565b946020939093013593505050565b5f5f5f6060848603121561138a575f5ffd5b61139384611328565b92506113a160208501611328565b929592945050506040919091013590565b5f602082840312156113c2575f5ffd5b6106de82611328565b5f5f604083850312156113dc575f5ffd5b6113e583611328565b9150602083013580151581146113f9575f5ffd5b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f5f5f5f60808587031215611444575f5ffd5b61144d85611328565b935061145b60208601611328565b925060408501359150606085013567ffffffffffffffff81111561147d575f5ffd5b8501601f8101871361148d575f5ffd5b803567ffffffffffffffff8111156114a7576114a7611404565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561151357611513611404565b60405281815282820160200189101561152a575f5ffd5b816020840160208301375f6020838301015280935050505092959194509250565b5f5f6040838503121561155c575f5ffd5b61156583611328565b915061157360208401611328565b90509250929050565b600181811c9082168061159057607f821691505b6020821081036115c7577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f81518060208401855e5f93019283525090919050565b5f6112636115f283866115cd565b846115cd565b73ffffffffffffffffffffffffffffffffffffffff8516815273ffffffffffffffffffffffffffffffffffffffff84166020820152826040820152608060608201525f61164860808301846112b3565b9695505050505050565b5f60208284031215611662575f5ffd5b81516106de8161126b56fea2646970667358221220a1ba687ee2a736f0c534a89f2475491ea7fcc9d2dacc1e995701a4030641298564736f6c634300081c0033","sourceMap":"338:445:85:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1560:300:93;;;;;;:::i;:::-;;:::i;:::-;;;611:14:133;;604:22;586:41;;574:2;559:18;1560:300:93;;;;;;;;2364:89;;;:::i;:::-;;;;;;;:::i;3496:154::-;;;;;;:::i;:::-;;:::i;:::-;;;1645:42:133;1633:55;;;1615:74;;1603:2;1588:18;3496:154:93;1469:226:133;3322:113:93;;;;;;:::i;:::-;;:::i;:::-;;675:106:85;;;;;;:::i;:::-;;:::i;4142:578:93:-;;;;;;:::i;:::-;;:::i;4786:132::-;;;;;;:::i;:::-;;:::i;2184:118::-;;;;;;:::i;:::-;;:::i;1919:208::-;;;;;;:::i;:::-;;:::i;:::-;;;2922:25:133;;;2910:2;2895:18;1919:208:93;2776:177:133;2293:101:87;;;:::i;1638:85::-;1710:6;;;;1638:85;;2517:93:93;;;:::i;3717:144::-;;;;;;:::i;:::-;;:::i;4984:233::-;;;;;;:::i;:::-;;:::i;2676:255::-;;;;;;:::i;:::-;;:::i;3927:153::-;;;;;;:::i;:::-;4038:25;;;;4015:4;4038:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;3927:153;2543:215:87;;;;;;:::i;:::-;;:::i;1560:300:93:-;1662:4;1697:40;;;1712:25;1697:40;;:104;;-1:-1:-1;1753:48:93;;;1768:33;1753:48;1697:104;:156;;;-1:-1:-1;877:25:103;862:40;;;;1817:36:93;1678:175;1560:300;-1:-1:-1;;1560:300:93:o;2364:89::-;2409:13;2441:5;2434:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2364:89;:::o;3496:154::-;3563:7;3582:22;3596:7;3582:13;:22::i;:::-;-1:-1:-1;6033:7:93;6059:24;;;:15;:24;;;;;;;;3622:21;5963:127;3322:113;3393:35;3402:2;3406:7;735:10:98;3393:8:93;:35::i;:::-;3322:113;;:::o;675:106:85:-;1531:13:87;:11;:13::i;:::-;753:21:85::1;759:2;763:10;753:5;:21::i;4142:578:93:-:0;4236:16;;;4232:87;;4275:33;;;;;4305:1;4275:33;;;1615:74:133;1588:18;;4275:33:93;;;;;;;;4232:87;4537:21;4561:34;4569:2;4573:7;735:10:98;4561:7:93;:34::i;:::-;4537:58;;4626:4;4609:21;;:13;:21;;;4605:109;;4653:50;;;;;5768:42:133;5756:55;;;4653:50:93;;;5738:74:133;5828:18;;;5821:34;;;5891:55;;5871:18;;;5864:83;5711:18;;4653:50:93;5536:417:133;4605:109:93;4222:498;4142:578;;;:::o;4786:132::-;4872:39;4889:4;4895:2;4899:7;4872:39;;;;;;;;;;;;:16;:39::i;:::-;4786:132;;;:::o;2184:118::-;2247:7;2273:22;2287:7;2273:13;:22::i;1919:208::-;1982:7;2005:19;;;2001:87;;2047:30;;;;;2074:1;2047:30;;;1615:74:133;1588:18;;2047:30:93;1469:226:133;2001:87:93;-1:-1:-1;2104:16:93;;;;;;:9;:16;;;;;;;1919:208::o;2293:101:87:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;2517:93:93:-;2564:13;2596:7;2589:14;;;;;:::i;3717:144::-;3802:52;735:10:98;3835:8:93;3845;3802:18;:52::i;4984:233::-;5097:31;5110:4;5116:2;5120:7;5097:12;:31::i;:::-;5138:72;735:10:98;5186:4:93;5192:2;5196:7;5205:4;5138:33;:72::i;2676:255::-;2740:13;2765:22;2779:7;2765:13;:22::i;:::-;;2798:21;2822:10;3249:9;;;;;;;;;-1:-1:-1;3249:9:93;;;3173:92;2822:10;2798:34;;2873:1;2855:7;2849:21;:25;:75;;;;;;;;;;;;;;;;;2891:7;2900:18;:7;:16;:18::i;:::-;2877:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2849:75;2842:82;2676:255;-1:-1:-1;;;2676:255:93:o;2543:215:87:-;1531:13;:11;:13::i;:::-;2627:22:::1;::::0;::::1;2623:91;;2672:31;::::0;::::1;::::0;;2700:1:::1;2672:31;::::0;::::1;1615:74:133::0;1588:18;;2672:31:87::1;1469:226:133::0;2623:91:87::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;16212:241:93:-;16275:7;5824:16;;;:7;:16;;;;;;;;;16337:88;;16383:31;;;;;;;;2922:25:133;;;2895:18;;16383:31:93;2776:177:133;14492:120:93;14572:33;14581:2;14585:7;14594:4;14600;14572:8;:33::i;1796:162:87:-;1710:6;;1855:23;1710:6;735:10:98;1855:23:87;1851:101;;1901:40;;;;;735:10:98;1901:40:87;;;1615:74:133;1588:18;;1901:40:87;1469:226:133;9978:327:93;10045:16;;;10041:87;;10084:33;;;;;10114:1;10084:33;;;1615:74:133;1588:18;;10084:33:93;1469:226:133;10041:87:93;10137:21;10161:32;10169:2;10173:7;10190:1;10161:7;:32::i;:::-;10137:56;-1:-1:-1;10207:27:93;;;;10203:96;;10257:31;;;;;10285:1;10257:31;;;1615:74:133;1588:18;;10257:31:93;1469:226:133;8861:795:93;8947:7;5824:16;;;:7;:16;;;;;;;;;;;9058:18;;;9054:86;;9092:37;9109:4;9115;9121:7;9092:16;:37::i;:::-;9184:18;;;;9180:256;;9300:48;9317:1;9321:7;9338:1;9342:5;9300:8;:48::i;:::-;9391:15;;;;;;;:9;:15;;;;;:20;;;;;;9180:256;9450:16;;;;9446:107;;9510:13;;;;;;;:9;:13;;;;;:18;;9527:1;9510:18;;;9446:107;9563:16;;;;:7;:16;;;;;;:21;;;;;;;;;;;;;;9600:27;;9563:16;;9600:27;;;;;;;9645:4;8861:795;-1:-1:-1;;;;8861:795:93:o;2912:187:87:-;3004:6;;;;3020:17;;;;;;;;;;;3052:40;;3004:6;;;3020:17;3004:6;;3052:40;;2985:16;;3052:40;2975:124;2912:187;:::o;15665:312:93:-;15772:22;;;15768:91;;15817:31;;;;;1645:42:133;1633:55;;15817:31:93;;;1615:74:133;1588:18;;15817:31:93;1469:226:133;15768:91:93;15868:25;;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;;;;;;;;;;;;15929:41;;586::133;;;15929::93;;559:18:133;15929:41:93;;;;;;;15665:312;;;:::o;985:924:97:-;1165:14;;;;:18;1161:742;;1203:67;;;;;:36;;;;;;:67;;1240:8;;1250:4;;1256:7;;1265:4;;1203:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1203:67:97;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1199:694;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1560:6;:13;1577:1;1560:18;1556:323;;1664:39;;;;;1645:42:133;1633:55;;1664:39:97;;;1615:74:133;1588:18;;1664:39:97;1469:226:133;1556:323:97;1831:6;1825:13;1816:6;1812:2;1808:15;1801:38;1199:694;1317:51;;;1327:41;1317:51;1313:182;;1437:39;;;;;1645:42:133;1633:55;;1437:39:97;;;1615:74:133;1588:18;;1437:39:97;1469:226:133;1313:182:97;1271:238;1199:694;985:924;;;;;:::o;987:632:100:-;1043:13;1092:14;1109:17;1120:5;1109:10;:17::i;:::-;1129:1;1109:21;1092:38;;1144:20;1178:6;1167:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1167:18:100;-1:-1:-1;1144:41:100;-1:-1:-1;1274:28:100;;;1290:2;1274:28;1329:247;1360:5;;1464:10;1459:2;1448:14;;1443:32;1360:5;1430:46;1520:2;1511:11;;;-1:-1:-1;1540:21:100;1329:247;1540:21;-1:-1:-1;1596:6:100;987:632;-1:-1:-1;;;987:632:100:o;14794:662:93:-;14954:9;:31;;;-1:-1:-1;14967:18:93;;;;;14954:31;14950:460;;;15001:13;15017:22;15031:7;15017:13;:22::i;:::-;15001:38;-1:-1:-1;15167:18:93;;;;;;;:35;;;15198:4;15189:13;;:5;:13;;;;15167:35;:69;;;;-1:-1:-1;4038:25:93;;;;4015:4;4038:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;15206:30;15167:69;15163:142;;;15263:27;;;;;1645:42:133;1633:55;;15263:27:93;;;1615:74:133;1588:18;;15263:27:93;1469:226:133;15163:142:93;15323:9;15319:81;;;15377:7;15373:2;15357:28;;15366:5;15357:28;;;;;;;;;;;;15319:81;14987:423;14950:460;-1:-1:-1;;15420:24:93;;;;:15;:24;;;;;:29;;;;;;;;;;;;;;;14794:662::o;7105:368::-;7217:38;7231:5;7238:7;7247;7217:13;:38::i;:::-;7212:255;;7275:19;;;7271:186;;7321:31;;;;;;;;2922:25:133;;;2895:18;;7321:31:93;2776:177:133;7271:186:93;7398:44;;;;;7641:42:133;7629:55;;7398:44:93;;;7611:74:133;7701:18;;;7694:34;;;7584:18;;7398:44:93;7437:297:133;25316:916:105;25369:7;;25453:8;25444:17;;25440:103;;25490:8;25481:17;;;-1:-1:-1;25526:2:105;25516:12;25440:103;25569:8;25560:5;:17;25556:103;;25606:8;25597:17;;;-1:-1:-1;25642:2:105;25632:12;25556:103;25685:8;25676:5;:17;25672:103;;25722:8;25713:17;;;-1:-1:-1;25758:2:105;25748:12;25672:103;25801:7;25792:5;:16;25788:100;;25837:7;25828:16;;;-1:-1:-1;25872:1:105;25862:11;25788:100;25914:7;25905:5;:16;25901:100;;25950:7;25941:16;;;-1:-1:-1;25985:1:105;25975:11;25901:100;26027:7;26018:5;:16;26014:100;;26063:7;26054:16;;;-1:-1:-1;26098:1:105;26088:11;26014:100;26140:7;26131:5;:16;26127:66;;26177:1;26167:11;26219:6;25316:916;-1:-1:-1;;25316:916:105:o;6401:272:93:-;6504:4;6539:21;;;;;;;:127;;;6586:7;6577:16;;:5;:16;;;:52;;;-1:-1:-1;4038:25:93;;;;4015:4;4038:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;6597:32;6577:88;;;-1:-1:-1;6033:7:93;6059:24;;;:15;:24;;;;;;6633:32;;;;6059:24;;6633:32;6577:88;6520:146;6401:272;-1:-1:-1;;;;6401:272:93:o;14:177:133:-;99:66;92:5;88:78;81:5;78:89;68:117;;181:1;178;171:12;196:245;254:6;307:2;295:9;286:7;282:23;278:32;275:52;;;323:1;320;313:12;275:52;362:9;349:23;381:30;405:5;381:30;:::i;638:359::-;691:3;729:5;723:12;756:6;751:3;744:19;812:6;805:4;798:5;794:16;787:4;782:3;778:14;772:47;864:1;857:4;848:6;843:3;839:16;835:27;828:38;986:4;916:66;911:2;903:6;899:15;895:88;890:3;886:98;882:109;875:116;;;638:359;;;;:::o;1002:231::-;1151:2;1140:9;1133:21;1114:4;1171:56;1223:2;1212:9;1208:18;1200:6;1171:56;:::i;1238:226::-;1297:6;1350:2;1338:9;1329:7;1325:23;1321:32;1318:52;;;1366:1;1363;1356:12;1318:52;-1:-1:-1;1411:23:133;;1238:226;-1:-1:-1;1238:226:133:o;1700:196::-;1768:20;;1828:42;1817:54;;1807:65;;1797:93;;1886:1;1883;1876:12;1797:93;1700:196;;;:::o;1901:300::-;1969:6;1977;2030:2;2018:9;2009:7;2005:23;2001:32;1998:52;;;2046:1;2043;2036:12;1998:52;2069:29;2088:9;2069:29;:::i;:::-;2059:39;2167:2;2152:18;;;;2139:32;;-1:-1:-1;;;1901:300:133:o;2206:374::-;2283:6;2291;2299;2352:2;2340:9;2331:7;2327:23;2323:32;2320:52;;;2368:1;2365;2358:12;2320:52;2391:29;2410:9;2391:29;:::i;:::-;2381:39;;2439:38;2473:2;2462:9;2458:18;2439:38;:::i;:::-;2206:374;;2429:48;;-1:-1:-1;;;2546:2:133;2531:18;;;;2518:32;;2206:374::o;2585:186::-;2644:6;2697:2;2685:9;2676:7;2672:23;2668:32;2665:52;;;2713:1;2710;2703:12;2665:52;2736:29;2755:9;2736:29;:::i;2958:347::-;3023:6;3031;3084:2;3072:9;3063:7;3059:23;3055:32;3052:52;;;3100:1;3097;3090:12;3052:52;3123:29;3142:9;3123:29;:::i;:::-;3113:39;;3202:2;3191:9;3187:18;3174:32;3249:5;3242:13;3235:21;3228:5;3225:32;3215:60;;3271:1;3268;3261:12;3215:60;3294:5;3284:15;;;2958:347;;;;;:::o;3310:184::-;3362:77;3359:1;3352:88;3459:4;3456:1;3449:15;3483:4;3480:1;3473:15;3499:1325;3594:6;3602;3610;3618;3671:3;3659:9;3650:7;3646:23;3642:33;3639:53;;;3688:1;3685;3678:12;3639:53;3711:29;3730:9;3711:29;:::i;:::-;3701:39;;3759:38;3793:2;3782:9;3778:18;3759:38;:::i;:::-;3749:48;-1:-1:-1;3866:2:133;3851:18;;3838:32;;-1:-1:-1;3945:2:133;3930:18;;3917:32;3972:18;3961:30;;3958:50;;;4004:1;4001;3994:12;3958:50;4027:22;;4080:4;4072:13;;4068:27;-1:-1:-1;4058:55:133;;4109:1;4106;4099:12;4058:55;4149:2;4136:16;4175:18;4167:6;4164:30;4161:56;;;4197:18;;:::i;:::-;4246:2;4240:9;4393:66;4388:2;4319:66;4312:4;4304:6;4300:17;4296:90;4292:99;4288:172;4280:6;4276:185;4527:6;4515:10;4512:22;4491:18;4479:10;4476:34;4473:62;4470:88;;;4538:18;;:::i;:::-;4574:2;4567:22;4598;;;4639:15;;;4656:2;4635:24;4632:37;-1:-1:-1;4629:57:133;;;4682:1;4679;4672:12;4629:57;4738:6;4733:2;4729;4725:11;4720:2;4712:6;4708:15;4695:50;4791:1;4786:2;4777:6;4769;4765:19;4761:28;4754:39;4812:6;4802:16;;;;;3499:1325;;;;;;;:::o;4829:260::-;4897:6;4905;4958:2;4946:9;4937:7;4933:23;4929:32;4926:52;;;4974:1;4971;4964:12;4926:52;4997:29;5016:9;4997:29;:::i;:::-;4987:39;;5045:38;5079:2;5068:9;5064:18;5045:38;:::i;:::-;5035:48;;4829:260;;;;;:::o;5094:437::-;5173:1;5169:12;;;;5216;;;5237:61;;5291:4;5283:6;5279:17;5269:27;;5237:61;5344:2;5336:6;5333:14;5313:18;5310:38;5307:218;;5381:77;5378:1;5371:88;5482:4;5479:1;5472:15;5510:4;5507:1;5500:15;5307:218;;5094:437;;;:::o;5958:212::-;6000:3;6038:5;6032:12;6082:6;6075:4;6068:5;6064:16;6059:3;6053:36;6144:1;6108:16;;6133:13;;;-1:-1:-1;6108:16:133;;5958:212;-1:-1:-1;5958:212:133:o;6175:267::-;6354:3;6379:57;6405:30;6431:3;6423:6;6405:30;:::i;:::-;6397:6;6379:57;:::i;6447:542::-;6690:42;6682:6;6678:55;6667:9;6660:74;6782:42;6774:6;6770:55;6765:2;6754:9;6750:18;6743:83;6862:6;6857:2;6846:9;6842:18;6835:34;6905:3;6900:2;6889:9;6885:18;6878:31;6641:4;6926:57;6978:3;6967:9;6963:19;6955:6;6926:57;:::i;:::-;6918:65;6447:542;-1:-1:-1;;;;;;6447:542:133:o;6994:249::-;7063:6;7116:2;7104:9;7095:7;7091:23;7087:32;7084:52;;;7132:1;7129;7122:12;7084:52;7164:9;7158:16;7183:30;7207:5;7183:30;:::i","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","giveToken(address,uint256)":"193f974c","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","renounceOwnership()":"715018a6","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"payable\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"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\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"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\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"curTokenId\",\"type\":\"uint256\"}],\"name\":\"giveToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"giveToken(address,uint256)\":{\"params\":{\"curTokenId\":\"The token id to give\",\"to\":\"The address to give the token to\"}},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"MockToken\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"The constructor which calls the ERC721 constructor\"},\"giveToken(address,uint256)\":{\"notice\":\"Gives an ERC721 token to an address\"}},\"notice\":\"This contract is an ERC721 token contract which can be used to allow users to sign up for a poll.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/extensions/mocks/MockToken.sol\":\"MockToken\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200000},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@semaphore-protocol/=node_modules/@semaphore-protocol/\",\":@solady/=node_modules/solady/\",\":@zk-kit/=node_modules/@zk-kit/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=node_modules/forge-std/\",\":hardhat/=node_modules/hardhat/\",\":poseidon-solidity/=node_modules/poseidon-solidity/\",\":solady/=node_modules/solady/\"]},\"sources\":{\"contracts/test/extensions/mocks/MockToken.sol\":{\"keccak256\":\"0x2ae1f16cab449dc69f3629e908486df9a7d853d24154eb0ebd92459b8f95eb0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9dd20bbc2fc52584037fe6b2509bfd70c0bd93c605c8664f87b9712748129279\",\"dweb:/ipfs/QmXXcuGYfnBse1qNe2sbCftArZnxAgKyhukBRBY3Smvu1Z\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x39ed367e54765186281efcfe83e47cf0ad62cc879f10e191360712507125f29a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c5ae6d85bd48cca8d6d2fcec8c63efd86f56f8a5832577a47e403ce0e65cb09\",\"dweb:/ipfs/QmUtcS8AbRSWhuc61puYet58os8FvSqm329ChoW8wwZXZk\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0x40399695922383778f9f540a620bec475a2f8e0f08d41f0005682842e28a9855\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://746d295e403931aeb9d6065fd5a0871f43ab5459814a60623611e4b6641a09fd\",\"dweb:/ipfs/QmWrgT8YJrQ9FfD1o3YYArwo57e7MGdpFKuM74qJ4qE34E\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x44f87e91783e88415bde66f1a63f6c7f0076f2d511548820407d5c95643ac56c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://13a51bc2b23827744dcf5bad10c69e72528cf015a6fe48c93632cdb2c0eb1251\",\"dweb:/ipfs/QmZwPA47Yqgje1qtkdEFEja8ntTahMStYzKf5q3JRnaR7d\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"curTokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"giveToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"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"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"giveToken(address,uint256)":{"params":{"curTokenId":"The token id to give","to":"The address to give the token to"}},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"owner()":{"details":"Returns the address of the current owner."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"The constructor which calls the ERC721 constructor"},"giveToken(address,uint256)":{"notice":"Gives an ERC721 token to an address"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@semaphore-protocol/=node_modules/@semaphore-protocol/","@solady/=node_modules/solady/","@zk-kit/=node_modules/@zk-kit/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=node_modules/forge-std/","hardhat/=node_modules/hardhat/","poseidon-solidity/=node_modules/poseidon-solidity/","solady/=node_modules/solady/"],"optimizer":{"enabled":true,"runs":200000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/test/extensions/mocks/MockToken.sol":"MockToken"},"evmVersion":"prague","libraries":{}},"sources":{"contracts/test/extensions/mocks/MockToken.sol":{"keccak256":"0x2ae1f16cab449dc69f3629e908486df9a7d853d24154eb0ebd92459b8f95eb0e","urls":["bzz-raw://9dd20bbc2fc52584037fe6b2509bfd70c0bd93c605c8664f87b9712748129279","dweb:/ipfs/QmXXcuGYfnBse1qNe2sbCftArZnxAgKyhukBRBY3Smvu1Z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x39ed367e54765186281efcfe83e47cf0ad62cc879f10e191360712507125f29a","urls":["bzz-raw://2c5ae6d85bd48cca8d6d2fcec8c63efd86f56f8a5832577a47e403ce0e65cb09","dweb:/ipfs/QmUtcS8AbRSWhuc61puYet58os8FvSqm329ChoW8wwZXZk"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol":{"keccak256":"0x40399695922383778f9f540a620bec475a2f8e0f08d41f0005682842e28a9855","urls":["bzz-raw://746d295e403931aeb9d6065fd5a0871f43ab5459814a60623611e4b6641a09fd","dweb:/ipfs/QmWrgT8YJrQ9FfD1o3YYArwo57e7MGdpFKuM74qJ4qE34E"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x44f87e91783e88415bde66f1a63f6c7f0076f2d511548820407d5c95643ac56c","urls":["bzz-raw://13a51bc2b23827744dcf5bad10c69e72528cf015a6fe48c93632cdb2c0eb1251","dweb:/ipfs/QmZwPA47Yqgje1qtkdEFEja8ntTahMStYzKf5q3JRnaR7d"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"}},"version":1},"id":85}