{"abi":[{"type":"constructor","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_baseURIAttestor","type":"address","internalType":"address"},{"name":"_attestationStation","type":"address","internalType":"contract AttestationStation"},{"name":"_optimistAllowlist","type":"address","internalType":"contract OptimistAllowlist"}],"stateMutability":"nonpayable"},{"type":"function","name":"ATTESTATION_STATION","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract AttestationStation"}],"stateMutability":"view"},{"type":"function","name":"BASE_URI_ATTESTATION_KEY","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"BASE_URI_ATTESTOR","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPTIMIST_ALLOWLIST","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract OptimistAllowlist"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"baseURI","inputs":[],"outputs":[{"name":"uri_","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"}],"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":"isOnAllowList","inputs":[{"name":"_recipient","type":"address","internalType":"address"}],"outputs":[{"name":"allowed_","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"_recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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":"","type":"address","internalType":"address"},{"name":"","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":"tokenIdOfAddress","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"tokenURI","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"uri_","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":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"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}],"bytecode":{"object":"0x60e06040523480156200001157600080fd5b5060405162002c6538038062002c658339810160408190526200003491620003dc565b6001600160a01b0380841660805282811660a052811660c05262000059858562000064565b5050505050620005e2565b600054610100900460ff1615808015620000855750600054600160ff909116105b80620000b55750620000a230620001a460201b62000e691760201c565b158015620000b5575060005460ff166001145b6200011e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000142576000805461ff0019166101001790555b6200014e8383620001b3565b620001586200021f565b80156200019f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6001600160a01b03163b151590565b600054610100900460ff166200020f5760405162461bcd60e51b815260206004820152602b602482015260008051602062002c4583398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000115565b6200021b82826200027d565b5050565b600054610100900460ff166200027b5760405162461bcd60e51b815260206004820152602b602482015260008051602062002c4583398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000115565b565b600054610100900460ff16620002d95760405162461bcd60e51b815260206004820152602b602482015260008051602062002c4583398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000115565b6065620002e7838262000516565b5060666200019f828262000516565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200031e57600080fd5b81516001600160401b03808211156200033b576200033b620002f6565b604051601f8301601f19908116603f01168101908282118183101715620003665762000366620002f6565b816040528381526020925086838588010111156200038357600080fd5b600091505b83821015620003a7578582018301518183018401529082019062000388565b83821115620003b95760008385830101525b9695505050505050565b6001600160a01b0381168114620003d957600080fd5b50565b600080600080600060a08688031215620003f557600080fd5b85516001600160401b03808211156200040d57600080fd5b6200041b89838a016200030c565b965060208801519150808211156200043257600080fd5b5062000441888289016200030c565b94505060408601516200045481620003c3565b60608701519093506200046781620003c3565b60808701519092506200047a81620003c3565b809150509295509295909350565b600181811c908216806200049d57607f821691505b602082108103620004be57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200019f57600081815260208120601f850160051c81016020861015620004ed5750805b601f850160051c820191505b818110156200050e57828155600101620004f9565b505050505050565b81516001600160401b03811115620005325762000532620002f6565b6200054a8162000543845462000488565b84620004c4565b602080601f831160018114620005825760008415620005695750858301515b600019600386901b1c1916600185901b1785556200050e565b600085815260208120601f198616915b82811015620005b35788860151825594840194600190910190840162000592565b5085821015620005d25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05161261e62000627600039600081816103c70152610d090152600081816103ee0152610b4001526000818161022c0152610ae9015261261e6000f3fe608060405234801561001057600080fd5b50600436106101985760003560e01c80636a627842116100e3578063a22cb4651161008c578063ce5dd1b511610066578063ce5dd1b5146103c2578063db083d71146103e9578063e985e9c51461041057600080fd5b8063a22cb4651461038e578063b88d4fde1461039c578063c87b56dd146103af57600080fd5b80637c08652f116100bd5780637c08652f1461034c5780638f328a1f1461037357806395d89b411461038657600080fd5b80636a6278421461031e5780636c0360eb1461033157806370a082311461033957600080fd5b806323b872dd116101455780634cd88b761161011f5780634cd88b76146102bc57806354fd4d50146102cf5780636352211e1461030b57600080fd5b806323b872dd1461028357806342842e0e1461029657806342966c68146102a957600080fd5b8063095ea7b311610176578063095ea7b31461021257806319f463f21461022757806321d3d5cf1461024e57600080fd5b806301ffc9a71461019d57806306fdde03146101c5578063081812fc146101da575b600080fd5b6101b06101ab366004611ddc565b610459565b60405190151581526020015b60405180910390f35b6101cd61053e565b6040516101bc9190611e6f565b6101ed6101e8366004611e82565b6105d0565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101bc565b610225610220366004611ec4565b610604565b005b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6102757f6f7074696d6973742e626173652d75726900000000000000000000000000000081565b6040519081526020016101bc565b610225610291366004611eee565b61066b565b6102256102a4366004611eee565b610712565b6102256102b7366004611e82565b61072d565b6102256102ca36600461204c565b6107ce565b6101cd6040518060400160405280600581526020017f322e312e3000000000000000000000000000000000000000000000000000000081525081565b6101ed610319366004611e82565b61096b565b61022561032c3660046120b0565b6109f7565b6101cd610aac565b6102756103473660046120b0565b610bf3565b61027561035a3660046120b0565b73ffffffffffffffffffffffffffffffffffffffff1690565b6101b06103813660046120b0565b610cc1565b6101cd610d76565b6102256102203660046120d9565b6102256103aa366004612110565b610d85565b6101cd6103bd366004611e82565b610e2d565b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6101b061041e36600461218c565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152606a6020908152604080832093909416825291909152205460ff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806104ec57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061053857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60606065805461054d906121bf565b80601f0160208091040260200160405190810160405280929190818152602001828054610579906121bf565b80156105c65780601f1061059b576101008083540402835291602001916105c6565b820191906000526020600020905b8154815290600101906020018083116105a957829003601f168201915b5050505050905090565b60006105db82610e85565b5060009081526069602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4f7074696d6973743a20736f756c20626f756e6420746f6b656e00000000000060448201526064015b60405180910390fd5b610676335b82610f10565b610702576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610662565b61070d838383610fd0565b505050565b61070d83838360405180602001604052806000815250610d85565b61073633610670565b6107c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610662565b6107cb81611242565b50565b600054610100900460ff16158080156107ee5750600054600160ff909116105b806108085750303b158015610808575060005460ff166001145b610894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610662565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156108f257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6108fc838361131c565b6109046113bd565b801561070d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b60008181526067602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610662565b610a0081610cc1565b610a8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4f7074696d6973743a2061646472657373206973206e6f74206f6e20616c6c6f60448201527f774c6973740000000000000000000000000000000000000000000000000000006064820152608401610662565b6107cb8173ffffffffffffffffffffffffffffffffffffffff8116611456565b6040517f29b42cb500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f6f7074696d6973742e626173652d75726900000000000000000000000000000060448301526060917f0000000000000000000000000000000000000000000000000000000000000000909116906329b42cb590606401600060405180830381865afa158015610b89573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610bcf9190810190612212565b604051602001610bdf9190612289565b604051602081830303815290604052905090565b600073ffffffffffffffffffffffffffffffffffffffff8216610c98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610662565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526068602052604090205490565b6040517f4813d8a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690634813d8a690602401602060405180830381865afa158015610d52573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053891906122a5565b60606066805461054d906121bf565b610d8f3383610f10565b610e1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610662565b610e2784848484611470565b50505050565b6060610e37610aac565b610e42836014611513565b604051602001610e539291906122c2565b6040516020818303038152906040529050919050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff166107cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610662565b600080610f1c8361096b565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610f8a575073ffffffffffffffffffffffffffffffffffffffff8082166000908152606a602090815260408083209388168352929052205460ff165b80610fc857508373ffffffffffffffffffffffffffffffffffffffff16610fb0846105d0565b73ffffffffffffffffffffffffffffffffffffffff16145b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff16610ff08261096b565b73ffffffffffffffffffffffffffffffffffffffff1614611093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610662565b73ffffffffffffffffffffffffffffffffffffffff8216611135576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610662565b61114083838361175d565b61114b6000826117fa565b73ffffffffffffffffffffffffffffffffffffffff83166000908152606860205260408120805460019290611181908490612373565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526068602052604081208054600192906111bc90849061238a565b909155505060008181526067602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600061124d8261096b565b905061125b8160008461175d565b6112666000836117fa565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260686020526040812080546001929061129c908490612373565b909155505060008281526067602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555183919073ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45b5050565b600054610100900460ff166113b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610662565b611318828261189a565b600054610100900460ff16611454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610662565b565b61131882826040518060200160405280600081525061194a565b61147b848484610fd0565b611487848484846119ed565b610e27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610662565b606060006115228360026123a2565b61152d90600261238a565b67ffffffffffffffff81111561154557611545611f2a565b6040519080825280601f01601f19166020018201604052801561156f576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106115a6576115a66123df565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611609576116096123df565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006116458460026123a2565b61165090600161238a565b90505b60018111156116ed577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611691576116916123df565b1a60f81b8282815181106116a7576116a76123df565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c936116e68161240e565b9050611653565b508315611756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610662565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff83161580611794575073ffffffffffffffffffffffffffffffffffffffff8216155b61070d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4f7074696d6973743a20736f756c20626f756e6420746f6b656e0000000000006044820152606401610662565b600081815260696020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841690811790915581906118548261096b565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600054610100900460ff16611931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610662565b606561193d8382612491565b50606661070d8282612491565b6119548383611be0565b61196160008484846119ed565b61070d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610662565b600073ffffffffffffffffffffffffffffffffffffffff84163b15611bd5576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a0290611a649033908990889088906004016125ab565b6020604051808303816000875af1925050508015611abd575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611aba918101906125f4565b60015b611b8a573d808015611aeb576040519150601f19603f3d011682016040523d82523d6000602084013e611af0565b606091505b508051600003611b82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610662565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610fc8565b506001949350505050565b73ffffffffffffffffffffffffffffffffffffffff8216611c5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610662565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff1615611ce9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610662565b611cf56000838361175d565b73ffffffffffffffffffffffffffffffffffffffff82166000908152606860205260408120805460019290611d2b90849061238a565b909155505060008181526067602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146107cb57600080fd5b600060208284031215611dee57600080fd5b813561175681611dae565b60005b83811015611e14578181015183820152602001611dfc565b83811115610e275750506000910152565b60008151808452611e3d816020860160208601611df9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006117566020830184611e25565b600060208284031215611e9457600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611ebf57600080fd5b919050565b60008060408385031215611ed757600080fd5b611ee083611e9b565b946020939093013593505050565b600080600060608486031215611f0357600080fd5b611f0c84611e9b565b9250611f1a60208501611e9b565b9150604084013590509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611fa057611fa0611f2a565b604052919050565b600067ffffffffffffffff821115611fc257611fc2611f2a565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b6000612001611ffc84611fa8565b611f59565b905082815283838301111561201557600080fd5b828260208301376000602084830101529392505050565b600082601f83011261203d57600080fd5b61175683833560208501611fee565b6000806040838503121561205f57600080fd5b823567ffffffffffffffff8082111561207757600080fd5b6120838683870161202c565b9350602085013591508082111561209957600080fd5b506120a68582860161202c565b9150509250929050565b6000602082840312156120c257600080fd5b61175682611e9b565b80151581146107cb57600080fd5b600080604083850312156120ec57600080fd5b6120f583611e9b565b91506020830135612105816120cb565b809150509250929050565b6000806000806080858703121561212657600080fd5b61212f85611e9b565b935061213d60208601611e9b565b925060408501359150606085013567ffffffffffffffff81111561216057600080fd5b8501601f8101871361217157600080fd5b61218087823560208401611fee565b91505092959194509250565b6000806040838503121561219f57600080fd5b6121a883611e9b565b91506121b660208401611e9b565b90509250929050565b600181811c908216806121d357607f821691505b60208210810361220c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60006020828403121561222457600080fd5b815167ffffffffffffffff81111561223b57600080fd5b8201601f8101841361224c57600080fd5b805161225a611ffc82611fa8565b81815285602083850101111561226f57600080fd5b612280826020830160208601611df9565b95945050505050565b6000825161229b818460208701611df9565b9190910192915050565b6000602082840312156122b757600080fd5b8151611756816120cb565b600083516122d4818460208801611df9565b7f2f00000000000000000000000000000000000000000000000000000000000000908301908152835161230e816001840160208801611df9565b7f2e6a736f6e00000000000000000000000000000000000000000000000000000060019290910191820152600601949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561238557612385612344565b500390565b6000821982111561239d5761239d612344565b500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156123da576123da612344565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008161241d5761241d612344565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b601f82111561070d57600081815260208120601f850160051c8101602086101561246a5750805b601f850160051c820191505b8181101561248957828155600101612476565b505050505050565b815167ffffffffffffffff8111156124ab576124ab611f2a565b6124bf816124b984546121bf565b84612443565b602080601f83116001811461251257600084156124dc5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555612489565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561255f57888601518255948401946001909101908401612540565b508582101561259b57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526125ea6080830184611e25565b9695505050505050565b60006020828403121561260657600080fd5b815161175681611dae56fea164736f6c634300080f000a496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","sourceMap":"611:4743:247:-:0;;;1604:395;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1820:36:247;;;;;1866:41;;;;;1917:39;;;;1966:26;1977:5;1984:7;1966:10;:26::i;:::-;1604:395;;;;;611:4743;;2128:162;3111:19:32;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:32;;3212:1;3197:12;;;;:16;3179:34;3178:108;;;;3220:44;3258:4;3220:29;;;;;:44;;:::i;:::-;3219:45;:66;;;;-1:-1:-1;3268:12:32;;;;;:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:32;;2396:2:416;3157:201:32;;;2378:21:416;2435:2;2415:18;;;2408:30;2474:34;2454:18;;;2447:62;-1:-1:-1;;;2525:18:416;;;2518:44;2579:19;;3157:201:32;;;;;;;;;3368:12;:16;;-1:-1:-1;;3368:16:32;3383:1;3368:16;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;3428:20:32;;;;;3394:65;2221:29:247::1;2235:5:::0;2242:7;2221:13:::1;:29::i;:::-;2260:23;:21;:23::i;:::-;3483:14:32::0;3479:99;;;3529:5;3513:21;;-1:-1:-1;;3513:21:32;;;3553:14;;-1:-1:-1;2761:36:416;;3553:14:32;;2749:2:416;2734:18;3553:14:32;;;;;;;3479:99;3101:483;2128:162:247;;:::o;1186:320:38:-;-1:-1:-1;;;;;1476:19:38;;:23;;;1186:320::o;1605:149:33:-;4910:13:32;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:32;;3010:2:416;4902:69:32;;;2992:21:416;3049:2;3029:18;;;3022:30;-1:-1:-1;;;;;;;;;;;3068:18:416;;;3061:62;-1:-1:-1;;;3139:18:416;;;3132:41;3190:19;;4902:69:32;2808:407:416;4902:69:32;1708:39:33::1;1732:5:::0;1739:7;1708:23:::1;:39::i;:::-;1605:149:::0;;:::o;483:66:36:-;4910:13:32;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:32;;3010:2:416;4902:69:32;;;2992:21:416;3049:2;3029:18;;;3022:30;-1:-1:-1;;;;;;;;;;;3068:18:416;;;3061:62;-1:-1:-1;;;3139:18:416;;;3132:41;3190:19;;4902:69:32;2808:407:416;4902:69:32;483:66:36:o;1760:160:33:-;4910:13:32;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:32;;3010:2:416;4902:69:32;;;2992:21:416;3049:2;3029:18;;;3022:30;-1:-1:-1;;;;;;;;;;;3068:18:416;;;3061:62;-1:-1:-1;;;3139:18:416;;;3132:41;3190:19;;4902:69:32;2808:407:416;4902:69:32;1873:5:33::1;:13;1881:5:::0;1873;:13:::1;:::i;:::-;-1:-1:-1::0;1896:7:33::1;:17;1906:7:::0;1896;:17:::1;:::i;14:127:416:-:0;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:885;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:416;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:416;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;930:2;927:1;924:9;921:80;;;989:1;984:2;979;971:6;967:15;963:24;956:35;921:80;1019:6;146:885;-1:-1:-1;;;;;;146:885:416:o;1036:131::-;-1:-1:-1;;;;;1111:31:416;;1101:42;;1091:70;;1157:1;1154;1147:12;1091:70;1036:131;:::o;1172:1017::-;1355:6;1363;1371;1379;1387;1440:3;1428:9;1419:7;1415:23;1411:33;1408:53;;;1457:1;1454;1447:12;1408:53;1484:16;;-1:-1:-1;;;;;1549:14:416;;;1546:34;;;1576:1;1573;1566:12;1546:34;1599:61;1652:7;1643:6;1632:9;1628:22;1599:61;:::i;:::-;1589:71;;1706:2;1695:9;1691:18;1685:25;1669:41;;1735:2;1725:8;1722:16;1719:36;;;1751:1;1748;1741:12;1719:36;;1774:63;1829:7;1818:8;1807:9;1803:24;1774:63;:::i;:::-;1764:73;;;1880:2;1869:9;1865:18;1859:25;1893:31;1918:5;1893:31;:::i;:::-;1993:2;1978:18;;1972:25;1943:5;;-1:-1:-1;2006:33:416;1972:25;2006:33;:::i;:::-;2110:3;2095:19;;2089:26;2058:7;;-1:-1:-1;2124:33:416;2089:26;2124:33;:::i;:::-;2176:7;2166:17;;;1172:1017;;;;;;;;:::o;3220:380::-;3299:1;3295:12;;;;3342;;;3363:61;;3417:4;3409:6;3405:17;3395:27;;3363:61;3470:2;3462:6;3459:14;3439:18;3436:38;3433:161;;3516:10;3511:3;3507:20;3504:1;3497:31;3551:4;3548:1;3541:15;3579:4;3576:1;3569:15;3433:161;;3220:380;;;:::o;3731:545::-;3833:2;3828:3;3825:11;3822:448;;;3869:1;3894:5;3890:2;3883:17;3939:4;3935:2;3925:19;4009:2;3997:10;3993:19;3990:1;3986:27;3980:4;3976:38;4045:4;4033:10;4030:20;4027:47;;;-1:-1:-1;4068:4:416;4027:47;4123:2;4118:3;4114:12;4111:1;4107:20;4101:4;4097:31;4087:41;;4178:82;4196:2;4189:5;4186:13;4178:82;;;4241:17;;;4222:1;4211:13;4178:82;;;4182:3;;;3731:545;;;:::o;4452:1352::-;4572:10;;-1:-1:-1;;;;;4594:30:416;;4591:56;;;4627:18;;:::i;:::-;4656:97;4746:6;4706:38;4738:4;4732:11;4706:38;:::i;:::-;4700:4;4656:97;:::i;:::-;4808:4;;4872:2;4861:14;;4889:1;4884:663;;;;5591:1;5608:6;5605:89;;;-1:-1:-1;5660:19:416;;;5654:26;5605:89;-1:-1:-1;;4409:1:416;4405:11;;;4401:24;4397:29;4387:40;4433:1;4429:11;;;4384:57;5707:81;;4854:944;;4884:663;3678:1;3671:14;;;3715:4;3702:18;;-1:-1:-1;;4920:20:416;;;5038:236;5052:7;5049:1;5046:14;5038:236;;;5141:19;;;5135:26;5120:42;;5233:27;;;;5201:1;5189:14;;;;5068:19;;5038:236;;;5042:3;5302:6;5293:7;5290:19;5287:201;;;5363:19;;;5357:26;-1:-1:-1;;5446:1:416;5442:14;;;5458:3;5438:24;5434:37;5430:42;5415:58;5400:74;;5287:201;-1:-1:-1;;;;;5534:1:416;5518:14;;;5514:22;5501:36;;-1:-1:-1;4452:1352:416:o;:::-;611:4743:247;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101985760003560e01c80636a627842116100e3578063a22cb4651161008c578063ce5dd1b511610066578063ce5dd1b5146103c2578063db083d71146103e9578063e985e9c51461041057600080fd5b8063a22cb4651461038e578063b88d4fde1461039c578063c87b56dd146103af57600080fd5b80637c08652f116100bd5780637c08652f1461034c5780638f328a1f1461037357806395d89b411461038657600080fd5b80636a6278421461031e5780636c0360eb1461033157806370a082311461033957600080fd5b806323b872dd116101455780634cd88b761161011f5780634cd88b76146102bc57806354fd4d50146102cf5780636352211e1461030b57600080fd5b806323b872dd1461028357806342842e0e1461029657806342966c68146102a957600080fd5b8063095ea7b311610176578063095ea7b31461021257806319f463f21461022757806321d3d5cf1461024e57600080fd5b806301ffc9a71461019d57806306fdde03146101c5578063081812fc146101da575b600080fd5b6101b06101ab366004611ddc565b610459565b60405190151581526020015b60405180910390f35b6101cd61053e565b6040516101bc9190611e6f565b6101ed6101e8366004611e82565b6105d0565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101bc565b610225610220366004611ec4565b610604565b005b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6102757f6f7074696d6973742e626173652d75726900000000000000000000000000000081565b6040519081526020016101bc565b610225610291366004611eee565b61066b565b6102256102a4366004611eee565b610712565b6102256102b7366004611e82565b61072d565b6102256102ca36600461204c565b6107ce565b6101cd6040518060400160405280600581526020017f322e312e3000000000000000000000000000000000000000000000000000000081525081565b6101ed610319366004611e82565b61096b565b61022561032c3660046120b0565b6109f7565b6101cd610aac565b6102756103473660046120b0565b610bf3565b61027561035a3660046120b0565b73ffffffffffffffffffffffffffffffffffffffff1690565b6101b06103813660046120b0565b610cc1565b6101cd610d76565b6102256102203660046120d9565b6102256103aa366004612110565b610d85565b6101cd6103bd366004611e82565b610e2d565b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6101b061041e36600461218c565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152606a6020908152604080832093909416825291909152205460ff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806104ec57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061053857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60606065805461054d906121bf565b80601f0160208091040260200160405190810160405280929190818152602001828054610579906121bf565b80156105c65780601f1061059b576101008083540402835291602001916105c6565b820191906000526020600020905b8154815290600101906020018083116105a957829003601f168201915b5050505050905090565b60006105db82610e85565b5060009081526069602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4f7074696d6973743a20736f756c20626f756e6420746f6b656e00000000000060448201526064015b60405180910390fd5b610676335b82610f10565b610702576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610662565b61070d838383610fd0565b505050565b61070d83838360405180602001604052806000815250610d85565b61073633610670565b6107c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610662565b6107cb81611242565b50565b600054610100900460ff16158080156107ee5750600054600160ff909116105b806108085750303b158015610808575060005460ff166001145b610894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610662565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156108f257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6108fc838361131c565b6109046113bd565b801561070d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b60008181526067602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610662565b610a0081610cc1565b610a8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4f7074696d6973743a2061646472657373206973206e6f74206f6e20616c6c6f60448201527f774c6973740000000000000000000000000000000000000000000000000000006064820152608401610662565b6107cb8173ffffffffffffffffffffffffffffffffffffffff8116611456565b6040517f29b42cb500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f6f7074696d6973742e626173652d75726900000000000000000000000000000060448301526060917f0000000000000000000000000000000000000000000000000000000000000000909116906329b42cb590606401600060405180830381865afa158015610b89573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610bcf9190810190612212565b604051602001610bdf9190612289565b604051602081830303815290604052905090565b600073ffffffffffffffffffffffffffffffffffffffff8216610c98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610662565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526068602052604090205490565b6040517f4813d8a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690634813d8a690602401602060405180830381865afa158015610d52573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053891906122a5565b60606066805461054d906121bf565b610d8f3383610f10565b610e1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610662565b610e2784848484611470565b50505050565b6060610e37610aac565b610e42836014611513565b604051602001610e539291906122c2565b6040516020818303038152906040529050919050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff166107cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610662565b600080610f1c8361096b565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610f8a575073ffffffffffffffffffffffffffffffffffffffff8082166000908152606a602090815260408083209388168352929052205460ff165b80610fc857508373ffffffffffffffffffffffffffffffffffffffff16610fb0846105d0565b73ffffffffffffffffffffffffffffffffffffffff16145b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff16610ff08261096b565b73ffffffffffffffffffffffffffffffffffffffff1614611093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610662565b73ffffffffffffffffffffffffffffffffffffffff8216611135576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610662565b61114083838361175d565b61114b6000826117fa565b73ffffffffffffffffffffffffffffffffffffffff83166000908152606860205260408120805460019290611181908490612373565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526068602052604081208054600192906111bc90849061238a565b909155505060008181526067602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600061124d8261096b565b905061125b8160008461175d565b6112666000836117fa565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260686020526040812080546001929061129c908490612373565b909155505060008281526067602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555183919073ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45b5050565b600054610100900460ff166113b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610662565b611318828261189a565b600054610100900460ff16611454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610662565b565b61131882826040518060200160405280600081525061194a565b61147b848484610fd0565b611487848484846119ed565b610e27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610662565b606060006115228360026123a2565b61152d90600261238a565b67ffffffffffffffff81111561154557611545611f2a565b6040519080825280601f01601f19166020018201604052801561156f576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106115a6576115a66123df565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611609576116096123df565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006116458460026123a2565b61165090600161238a565b90505b60018111156116ed577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611691576116916123df565b1a60f81b8282815181106116a7576116a76123df565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c936116e68161240e565b9050611653565b508315611756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610662565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff83161580611794575073ffffffffffffffffffffffffffffffffffffffff8216155b61070d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4f7074696d6973743a20736f756c20626f756e6420746f6b656e0000000000006044820152606401610662565b600081815260696020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841690811790915581906118548261096b565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600054610100900460ff16611931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610662565b606561193d8382612491565b50606661070d8282612491565b6119548383611be0565b61196160008484846119ed565b61070d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610662565b600073ffffffffffffffffffffffffffffffffffffffff84163b15611bd5576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a0290611a649033908990889088906004016125ab565b6020604051808303816000875af1925050508015611abd575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611aba918101906125f4565b60015b611b8a573d808015611aeb576040519150601f19603f3d011682016040523d82523d6000602084013e611af0565b606091505b508051600003611b82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610662565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610fc8565b506001949350505050565b73ffffffffffffffffffffffffffffffffffffffff8216611c5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610662565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff1615611ce9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610662565b611cf56000838361175d565b73ffffffffffffffffffffffffffffffffffffffff82166000908152606860205260408120805460019290611d2b90849061238a565b909155505060008181526067602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146107cb57600080fd5b600060208284031215611dee57600080fd5b813561175681611dae565b60005b83811015611e14578181015183820152602001611dfc565b83811115610e275750506000910152565b60008151808452611e3d816020860160208601611df9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006117566020830184611e25565b600060208284031215611e9457600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611ebf57600080fd5b919050565b60008060408385031215611ed757600080fd5b611ee083611e9b565b946020939093013593505050565b600080600060608486031215611f0357600080fd5b611f0c84611e9b565b9250611f1a60208501611e9b565b9150604084013590509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611fa057611fa0611f2a565b604052919050565b600067ffffffffffffffff821115611fc257611fc2611f2a565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b6000612001611ffc84611fa8565b611f59565b905082815283838301111561201557600080fd5b828260208301376000602084830101529392505050565b600082601f83011261203d57600080fd5b61175683833560208501611fee565b6000806040838503121561205f57600080fd5b823567ffffffffffffffff8082111561207757600080fd5b6120838683870161202c565b9350602085013591508082111561209957600080fd5b506120a68582860161202c565b9150509250929050565b6000602082840312156120c257600080fd5b61175682611e9b565b80151581146107cb57600080fd5b600080604083850312156120ec57600080fd5b6120f583611e9b565b91506020830135612105816120cb565b809150509250929050565b6000806000806080858703121561212657600080fd5b61212f85611e9b565b935061213d60208601611e9b565b925060408501359150606085013567ffffffffffffffff81111561216057600080fd5b8501601f8101871361217157600080fd5b61218087823560208401611fee565b91505092959194509250565b6000806040838503121561219f57600080fd5b6121a883611e9b565b91506121b660208401611e9b565b90509250929050565b600181811c908216806121d357607f821691505b60208210810361220c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60006020828403121561222457600080fd5b815167ffffffffffffffff81111561223b57600080fd5b8201601f8101841361224c57600080fd5b805161225a611ffc82611fa8565b81815285602083850101111561226f57600080fd5b612280826020830160208601611df9565b95945050505050565b6000825161229b818460208701611df9565b9190910192915050565b6000602082840312156122b757600080fd5b8151611756816120cb565b600083516122d4818460208801611df9565b7f2f00000000000000000000000000000000000000000000000000000000000000908301908152835161230e816001840160208801611df9565b7f2e6a736f6e00000000000000000000000000000000000000000000000000000060019290910191820152600601949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561238557612385612344565b500390565b6000821982111561239d5761239d612344565b500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156123da576123da612344565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008161241d5761241d612344565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b601f82111561070d57600081815260208120601f850160051c8101602086101561246a5750805b601f850160051c820191505b8181101561248957828155600101612476565b505050505050565b815167ffffffffffffffff8111156124ab576124ab611f2a565b6124bf816124b984546121bf565b84612443565b602080601f83116001811461251257600084156124dc5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555612489565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561255f57888601518255948401946001909101908401612540565b508582101561259b57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526125ea6080830184611e25565b9695505050505050565b60006020828403121561260657600080fd5b815161175681611dae56fea164736f6c634300080f000a","sourceMap":"611:4743:247:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1987:344:33;;;;;;:::i;:::-;;:::i;:::-;;;611:14:416;;604:22;586:41;;574:2;559:18;1987:344:33;;;;;;;;2931:98;;;:::i;:::-;;;;;;;:::i;4407:167::-;;;;;;:::i;:::-;;:::i;:::-;;;1809:42:416;1797:55;;;1779:74;;1767:2;1752:18;4407:167:33;1633:226:416;4679:109:247;;;;;;:::i;:::-;;:::i;:::-;;884:42;;;;;749:79;;800:28;749:79;;;;;2470:25:416;;;2458:2;2443:18;749:79:247;2324:177:416;5084:327:33;;;;;;:::i;:::-;;:::i;5477:179::-;;;;;;:::i;:::-;;:::i;803:239:36:-;;;;;;:::i;:::-;;:::i;2128:162:247:-;;;;;;:::i;:::-;;:::i;1237:40::-;;;;;;;;;;;;;;;;;;;;;2651:218:33;;;;;;:::i;:::-;;:::i;2613:194:247:-;;;;;;:::i;:::-;;:::i;2910:258::-;;;:::i;2390:204:33:-;;;;;;:::i;:::-;;:::i;4487:120:247:-;;;;;;:::i;:::-;4576:24;;;4487:120;4111:153;;;;;;:::i;:::-;;:::i;3093:102:33:-;;;:::i;4860:119:247:-;;;;;;:::i;5722:315:33:-;;;;;;:::i;:::-;;:::i;3337:385:247:-;;;;;;:::i;:::-;;:::i;1114:53::-;;;;;993:55;;;;;4860:162:33;;;;;;:::i;:::-;4980:25;;;;4957:4;4980:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4860:162;1987:344;2111:4;2146:51;;;2161:36;2146:51;;:126;;-1:-1:-1;2213:59:33;;;2228:44;2213:59;2146:126;:178;;;-1:-1:-1;1183:36:43;1168:51;;;;2288:36:33;2127:197;1987:344;-1:-1:-1;;1987:344:33:o;2931:98::-;2985:13;3017:5;3010:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2931:98;:::o;4407:167::-;4483:7;4502:23;4517:7;4502:14;:23::i;:::-;-1:-1:-1;4543:24:33;;;;:15;:24;;;;;;;;;4407:167::o;4679:109:247:-;4745:36;;;;;7652:2:416;4745:36:247;;;7634:21:416;7691:2;7671:18;;;7664:30;7730:28;7710:18;;;7703:56;7776:18;;4745:36:247;;;;;;;;5084:327:33;5273:41;929:10:39;5292:12:33;5306:7;5273:18;:41::i;:::-;5265:100;;;;;;;8007:2:416;5265:100:33;;;7989:21:416;8046:2;8026:18;;;8019:30;8085:34;8065:18;;;8058:62;8156:16;8136:18;;;8129:44;8190:19;;5265:100:33;7805:410:416;5265:100:33;5376:28;5386:4;5392:2;5396:7;5376:9;:28::i;:::-;5084:327;;;:::o;5477:179::-;5610:39;5627:4;5633:2;5637:7;5610:39;;;;;;;;;;;;:16;:39::i;803:239:36:-;919:41;929:10:39;938:12:36;850:96:39;919:41:36;911:100;;;;;;;8007:2:416;911:100:36;;;7989:21:416;8046:2;8026:18;;;8019:30;8085:34;8065:18;;;8058:62;8156:16;8136:18;;;8129:44;8190:19;;911:100:36;7805:410:416;911:100:36;1021:14;1027:7;1021:5;:14::i;:::-;803:239;:::o;2128:162:247:-;3111:19:32;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:32;;3212:1;3197:12;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:32;1476:19:38;:23;;;3219:66:32;;-1:-1:-1;3268:12:32;;;;;:17;3219:66;3157:201;;;;;;;8422:2:416;3157:201:32;;;8404:21:416;8461:2;8441:18;;;8434:30;8500:34;8480:18;;;8473:62;8571:16;8551:18;;;8544:44;8605:19;;3157:201:32;8220:410:416;3157:201:32;3368:12;:16;;;;3383:1;3368:16;;;3394:65;;;;3428:13;:20;;;;;;;;3394:65;2221:29:247::1;2235:5;2242:7;2221:13;:29::i;:::-;2260:23;:21;:23::i;:::-;3483:14:32::0;3479:99;;;3529:5;3513:21;;;;;;3553:14;;-1:-1:-1;8787:36:416;;3553:14:32;;8775:2:416;8760:18;3553:14:32;;;;;;;3101:483;2128:162:247;;:::o;2651:218:33:-;2723:7;2758:16;;;:7;:16;;;;;;;;;2784:56;;;;;;;9036:2:416;2784:56:33;;;9018:21:416;9075:2;9055:18;;;9048:30;9114:26;9094:18;;;9087:54;9158:18;;2784:56:33;8834:348:416;2613:194:247;2672:25;2686:10;2672:13;:25::i;:::-;2664:75;;;;;;;9389:2:416;2664:75:247;;;9371:21:416;9428:2;9408:18;;;9401:30;9467:34;9447:18;;;9440:62;9538:7;9518:18;;;9511:35;9563:19;;2664:75:247;9187:401:416;2664:75:247;2749:51;2759:10;4576:24;;;2749:9;:51::i;2910:258::-;3041:96;;;;;:32;3074:17;9874:15:416;;3041:96:247;;;9856:34:416;3101:4:247;9906:18:416;;;9899:43;3108:28:247;9958:18:416;;;9951:34;2950:18:247;;3041:19;:32;;;;;;9768:18:416;;3041:96:247;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3007:144;;;;;;;;:::i;:::-;;;;;;;;;;;;;2980:181;;2910:258;:::o;2390:204:33:-;2462:7;2489:19;;;2481:73;;;;;;;11117:2:416;2481:73:33;;;11099:21:416;11156:2;11136:18;;;11129:30;11195:34;11175:18;;;11168:62;11266:11;11246:18;;;11239:39;11295:19;;2481:73:33;10915:405:416;2481:73:33;-1:-1:-1;2571:16:33;;;;;;:9;:16;;;;;;;2390:204::o;4111:153:247:-;4211:46;;;;;:34;1797:55:416;;;4211:46:247;;;1779:74:416;4175:13:247;;4211:18;:34;;;;;;1752:18:416;;4211:46:247;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3093:102:33:-;3149:13;3181:7;3174:14;;;;;:::i;5722:315::-;5890:41;929:10:39;5923:7:33;5890:18;:41::i;:::-;5882:100;;;;;;;8007:2:416;5882:100:33;;;7989:21:416;8046:2;8026:18;;;8019:30;8085:34;8065:18;;;8058:62;8156:16;8136:18;;;8129:44;8190:19;;5882:100:33;7805:410:416;5882:100:33;5992:38;6006:4;6012:2;6016:7;6025:4;5992:13;:38::i;:::-;5722:315;;;;:::o;3337:385:247:-;3411:18;3502:9;:7;:9::i;:::-;3633:33;3653:8;3663:2;3633:19;:33::i;:::-;3468:237;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3441:274;;3337:385;;;:::o;1186:320:38:-;1476:19;;;:23;;;1186:320::o;12173:133:33:-;7571:4;7594:16;;;:7;:16;;;;;;:30;:16;12246:53;;;;;;;9036:2:416;12246:53:33;;;9018:21:416;9075:2;9055:18;;;9048:30;9114:26;9094:18;;;9087:54;9158:18;;12246:53:33;8834:348:416;7789:272:33;7882:4;7898:13;7914:34;7940:7;7914:25;:34::i;:::-;7898:50;;7977:5;7966:16;;:7;:16;;;:52;;;-1:-1:-1;4980:25:33;;;;4957:4;4980:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;7986:32;7966:87;;;;8046:7;8022:31;;:20;8034:7;8022:11;:20::i;:::-;:31;;;7966:87;7958:96;7789:272;-1:-1:-1;;;;7789:272:33:o;10736:616::-;10901:4;10863:42;;:34;10889:7;10863:25;:34::i;:::-;:42;;;10855:92;;;;;;;12554:2:416;10855:92:33;;;12536:21:416;12593:2;12573:18;;;12566:30;12632:34;12612:18;;;12605:62;12703:7;12683:18;;;12676:35;12728:19;;10855:92:33;12352:401:416;10855:92:33;10965:16;;;10957:65;;;;;;;12960:2:416;10957:65:33;;;12942:21:416;12999:2;12979:18;;;12972:30;13038:34;13018:18;;;13011:62;13109:6;13089:18;;;13082:34;13133:19;;10957:65:33;12758:400:416;10957:65:33;11033:39;11054:4;11060:2;11064:7;11033:20;:39::i;:::-;11134:29;11151:1;11155:7;11134:8;:29::i;:::-;11174:15;;;;;;;:9;:15;;;;;:20;;11193:1;;11174:15;:20;;11193:1;;11174:20;:::i;:::-;;;;-1:-1:-1;;11204:13:33;;;;;;;:9;:13;;;;;:18;;11221:1;;11204:13;:18;;11221:1;;11204:18;:::i;:::-;;;;-1:-1:-1;;11232:16:33;;;;:7;:16;;;;;;:21;;;;;;;;;;;;;;11269:27;;11232:16;;11269:27;;;;;;;5084:327;;;:::o;9995:417::-;10054:13;10070:34;10096:7;10070:25;:34::i;:::-;10054:50;;10115:48;10136:5;10151:1;10155:7;10115:20;:48::i;:::-;10201:29;10218:1;10222:7;10201:8;:29::i;:::-;10241:16;;;;;;;:9;:16;;;;;:21;;10261:1;;10241:16;:21;;10261:1;;10241:21;:::i;:::-;;;;-1:-1:-1;;10279:16:33;;;;:7;:16;;;;;;10272:23;;;;;;10311:36;10287:7;;10279:16;10272:23;10311:36;;;;;10279:16;;10311:36;10358:47;10044:368;9995:417;:::o;1605:149::-;4910:13:32;;;;;;;4902:69;;;;;;;13817:2:416;4902:69:32;;;13799:21:416;13856:2;13836:18;;;13829:30;13895:34;13875:18;;;13868:62;13966:13;13946:18;;;13939:41;13997:19;;4902:69:32;13615:407:416;4902:69:32;1708:39:33::1;1732:5;1739:7;1708:23;:39::i;483:66:36:-:0;4910:13:32;;;;;;;4902:69;;;;;;;13817:2:416;4902:69:32;;;13799:21:416;13856:2;13836:18;;;13829:30;13895:34;13875:18;;;13868:62;13966:13;13946:18;;;13939:41;13997:19;;4902:69:32;13615:407:416;4902:69:32;483:66:36:o;8391:108:33:-;8466:26;8476:2;8480:7;8466:26;;;;;;;;;;;;:9;:26::i;6898:305::-;7048:28;7058:4;7064:2;7068:7;7048:9;:28::i;:::-;7094:47;7117:4;7123:2;7127:7;7136:4;7094:22;:47::i;:::-;7086:110;;;;;;;14229:2:416;7086:110:33;;;14211:21:416;14268:2;14248:18;;;14241:30;14307:34;14287:18;;;14280:62;14378:20;14358:18;;;14351:48;14416:19;;7086:110:33;14027:414:416;1652:441:67;1727:13;1752:19;1784:10;1788:6;1784:1;:10;:::i;:::-;:14;;1797:1;1784:14;:::i;:::-;1774:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1774:25:67;;1752:47;;1809:15;:6;1816:1;1809:9;;;;;;;;:::i;:::-;;;;:15;;;;;;;;;;;1834;:6;1841:1;1834:9;;;;;;;;:::i;:::-;;;;:15;;;;;;;;;;-1:-1:-1;1864:9:67;1876:10;1880:6;1876:1;:10;:::i;:::-;:14;;1889:1;1876:14;:::i;:::-;1864:26;;1859:132;1896:1;1892;:5;1859:132;;;1930:12;1943:5;1951:3;1943:11;1930:25;;;;;;;:::i;:::-;;;;1918:6;1925:1;1918:9;;;;;;;;:::i;:::-;;;;:37;;;;;;;;;;-1:-1:-1;1979:1:67;1969:11;;;;;1899:3;;;:::i;:::-;;;1859:132;;;-1:-1:-1;2008:10:67;;2000:55;;;;;;;15271:2:416;2000:55:67;;;15253:21:416;;;15290:18;;;15283:30;15349:34;15329:18;;;15322:62;15401:18;;2000:55:67;15069:356:416;2000:55:67;2079:6;1652:441;-1:-1:-1;;;1652:441:67:o;5163:189:247:-;5274:19;;;;;:40;;-1:-1:-1;5297:17:247;;;;5274:40;5266:79;;;;;;;7652:2:416;5266:79:247;;;7634:21:416;7691:2;7671:18;;;7664:30;7730:28;7710:18;;;7703:56;7776:18;;5266:79:247;7450:350:416;11464:182:33;11538:24;;;;:15;:24;;;;;:29;;;;;;;;;;;;;:24;;11591:34;11538:24;11591:25;:34::i;:::-;11582:57;;;;;;;;;;;;11464:182;;:::o;1760:160::-;4910:13:32;;;;;;;4902:69;;;;;;;13817:2:416;4902:69:32;;;13799:21:416;13856:2;13836:18;;;13829:30;13895:34;13875:18;;;13868:62;13966:13;13946:18;;;13939:41;13997:19;;4902:69:32;13615:407:416;4902:69:32;1873:5:33::1;:13;1881:5:::0;1873;:13:::1;:::i;:::-;-1:-1:-1::0;1896:7:33::1;:17;1906:7:::0;1896;:17:::1;:::i;8720:309::-:0;8844:18;8850:2;8854:7;8844:5;:18::i;:::-;8893:53;8924:1;8928:2;8932:7;8941:4;8893:22;:53::i;:::-;8872:150;;;;;;;14229:2:416;8872:150:33;;;14211:21:416;14268:2;14248:18;;;14241:30;14307:34;14287:18;;;14280:62;14378:20;14358:18;;;14351:48;14416:19;;8872:150:33;14027:414:416;12858:853:33;13007:4;13027:13;;;1476:19:38;:23;13023:682:33;;13062:82;;;;;:47;;;;;;:82;;929:10:39;;13124:4:33;;13130:7;;13139:4;;13062:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13062:82:33;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;13058:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13322:6;:13;13339:1;13322:18;13318:321;;13364:60;;;;;14229:2:416;13364:60:33;;;14211:21:416;14268:2;14248:18;;;14241:30;14307:34;14287:18;;;14280:62;14378:20;14358:18;;;14351:48;14416:19;;13364:60:33;14027:414:416;13318:321:33;13591:6;13585:13;13576:6;13572:2;13568:15;13561:38;13058:595;13194:62;;13204:52;13194:62;;-1:-1:-1;13187:69:33;;13023:682;-1:-1:-1;13690:4:33;12858:853;;;;;;:::o;9351:427::-;9430:16;;;9422:61;;;;;;;18786:2:416;9422:61:33;;;18768:21:416;;;18805:18;;;18798:30;18864:34;18844:18;;;18837:62;18916:18;;9422:61:33;18584:356:416;9422:61:33;7571:4;7594:16;;;:7;:16;;;;;;:30;:16;:30;9493:58;;;;;;;19147:2:416;9493:58:33;;;19129:21:416;19186:2;19166:18;;;19159:30;19225;19205:18;;;19198:58;19273:18;;9493:58:33;18945:352:416;9493:58:33;9562:45;9591:1;9595:2;9599:7;9562:20;:45::i;:::-;9618:13;;;;;;;:9;:13;;;;;:18;;9635:1;;9618:13;:18;;9635:1;;9618:18;:::i;:::-;;;;-1:-1:-1;;9646:16:33;;;;:7;:16;;;;;;:21;;;;;;;;;;;;;9683:33;;9646:16;;;9683:33;;9646:16;;9683:33;10044:368;9995:417;:::o;14:177:416:-;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:258::-;710:1;720:113;734:6;731:1;728:13;720:113;;;810:11;;;804:18;791:11;;;784:39;756:2;749:10;720:113;;;851:6;848:1;845:13;842:48;;;-1:-1:-1;;886:1:416;868:16;;861:27;638:258::o;901:317::-;943:3;981:5;975:12;1008:6;1003:3;996:19;1024:63;1080:6;1073:4;1068:3;1064:14;1057:4;1050:5;1046:16;1024:63;:::i;:::-;1132:2;1120:15;1137:66;1116:88;1107:98;;;;1207:4;1103:109;;901:317;-1:-1:-1;;901:317:416:o;1223:220::-;1372:2;1361:9;1354:21;1335:4;1392:45;1433:2;1422:9;1418:18;1410:6;1392:45;:::i;1448:180::-;1507:6;1560:2;1548:9;1539:7;1535:23;1531:32;1528:52;;;1576:1;1573;1566:12;1528:52;-1:-1:-1;1599:23:416;;1448:180;-1:-1:-1;1448:180:416:o;1864:196::-;1932:20;;1992:42;1981:54;;1971:65;;1961:93;;2050:1;2047;2040:12;1961:93;1864:196;;;:::o;2065:254::-;2133:6;2141;2194:2;2182:9;2173:7;2169:23;2165:32;2162:52;;;2210:1;2207;2200:12;2162:52;2233:29;2252:9;2233:29;:::i;:::-;2223:39;2309:2;2294:18;;;;2281:32;;-1:-1:-1;;;2065:254:416:o;2506:328::-;2583:6;2591;2599;2652:2;2640:9;2631:7;2627:23;2623:32;2620:52;;;2668:1;2665;2658:12;2620:52;2691:29;2710:9;2691:29;:::i;:::-;2681:39;;2739:38;2773:2;2762:9;2758:18;2739:38;:::i;:::-;2729:48;;2824:2;2813:9;2809:18;2796:32;2786:42;;2506:328;;;;;:::o;2839:184::-;2891:77;2888:1;2881:88;2988:4;2985:1;2978:15;3012:4;3009:1;3002:15;3028:334;3099:2;3093:9;3155:2;3145:13;;3160:66;3141:86;3129:99;;3258:18;3243:34;;3279:22;;;3240:62;3237:88;;;3305:18;;:::i;:::-;3341:2;3334:22;3028:334;;-1:-1:-1;3028:334:416:o;3367:246::-;3416:4;3449:18;3441:6;3438:30;3435:56;;;3471:18;;:::i;:::-;-1:-1:-1;3528:2:416;3516:15;3533:66;3512:88;3602:4;3508:99;;3367:246::o;3618:338::-;3683:5;3712:53;3728:36;3757:6;3728:36;:::i;:::-;3712:53;:::i;:::-;3703:62;;3788:6;3781:5;3774:21;3828:3;3819:6;3814:3;3810:16;3807:25;3804:45;;;3845:1;3842;3835:12;3804:45;3894:6;3889:3;3882:4;3875:5;3871:16;3858:43;3948:1;3941:4;3932:6;3925:5;3921:18;3917:29;3910:40;3618:338;;;;;:::o;3961:222::-;4004:5;4057:3;4050:4;4042:6;4038:17;4034:27;4024:55;;4075:1;4072;4065:12;4024:55;4097:80;4173:3;4164:6;4151:20;4144:4;4136:6;4132:17;4097:80;:::i;4188:543::-;4276:6;4284;4337:2;4325:9;4316:7;4312:23;4308:32;4305:52;;;4353:1;4350;4343:12;4305:52;4393:9;4380:23;4422:18;4463:2;4455:6;4452:14;4449:34;;;4479:1;4476;4469:12;4449:34;4502:50;4544:7;4535:6;4524:9;4520:22;4502:50;:::i;:::-;4492:60;;4605:2;4594:9;4590:18;4577:32;4561:48;;4634:2;4624:8;4621:16;4618:36;;;4650:1;4647;4640:12;4618:36;;4673:52;4717:7;4706:8;4695:9;4691:24;4673:52;:::i;:::-;4663:62;;;4188:543;;;;;:::o;4736:186::-;4795:6;4848:2;4836:9;4827:7;4823:23;4819:32;4816:52;;;4864:1;4861;4854:12;4816:52;4887:29;4906:9;4887:29;:::i;5109:118::-;5195:5;5188:13;5181:21;5174:5;5171:32;5161:60;;5217:1;5214;5207:12;5232:315;5297:6;5305;5358:2;5346:9;5337:7;5333:23;5329:32;5326:52;;;5374:1;5371;5364:12;5326:52;5397:29;5416:9;5397:29;:::i;:::-;5387:39;;5476:2;5465:9;5461:18;5448:32;5489:28;5511:5;5489:28;:::i;:::-;5536:5;5526:15;;;5232:315;;;;;:::o;5552:667::-;5647:6;5655;5663;5671;5724:3;5712:9;5703:7;5699:23;5695:33;5692:53;;;5741:1;5738;5731:12;5692:53;5764:29;5783:9;5764:29;:::i;:::-;5754:39;;5812:38;5846:2;5835:9;5831:18;5812:38;:::i;:::-;5802:48;;5897:2;5886:9;5882:18;5869:32;5859:42;;5952:2;5941:9;5937:18;5924:32;5979:18;5971:6;5968:30;5965:50;;;6011:1;6008;6001:12;5965:50;6034:22;;6087:4;6079:13;;6075:27;-1:-1:-1;6065:55:416;;6116:1;6113;6106:12;6065:55;6139:74;6205:7;6200:2;6187:16;6182:2;6178;6174:11;6139:74;:::i;:::-;6129:84;;;5552:667;;;;;;;:::o;6743:260::-;6811:6;6819;6872:2;6860:9;6851:7;6847:23;6843:32;6840:52;;;6888:1;6885;6878:12;6840:52;6911:29;6930:9;6911:29;:::i;:::-;6901:39;;6959:38;6993:2;6982:9;6978:18;6959:38;:::i;:::-;6949:48;;6743:260;;;;;:::o;7008:437::-;7087:1;7083:12;;;;7130;;;7151:61;;7205:4;7197:6;7193:17;7183:27;;7151:61;7258:2;7250:6;7247:14;7227:18;7224:38;7221:218;;7295:77;7292:1;7285:88;7396:4;7393:1;7386:15;7424:4;7421:1;7414:15;7221:218;;7008:437;;;:::o;9996:635::-;10075:6;10128:2;10116:9;10107:7;10103:23;10099:32;10096:52;;;10144:1;10141;10134:12;10096:52;10177:9;10171:16;10210:18;10202:6;10199:30;10196:50;;;10242:1;10239;10232:12;10196:50;10265:22;;10318:4;10310:13;;10306:27;-1:-1:-1;10296:55:416;;10347:1;10344;10337:12;10296:55;10376:2;10370:9;10401:49;10417:32;10446:2;10417:32;:::i;10401:49::-;10473:2;10466:5;10459:17;10513:7;10508:2;10503;10499;10495:11;10491:20;10488:33;10485:53;;;10534:1;10531;10524:12;10485:53;10547:54;10598:2;10593;10586:5;10582:14;10577:2;10573;10569:11;10547:54;:::i;:::-;10620:5;9996:635;-1:-1:-1;;;;;9996:635:416:o;10636:274::-;10765:3;10803:6;10797:13;10819:53;10865:6;10860:3;10853:4;10845:6;10841:17;10819:53;:::i;:::-;10888:16;;;;;10636:274;-1:-1:-1;;10636:274:416:o;11325:245::-;11392:6;11445:2;11433:9;11424:7;11420:23;11416:32;11413:52;;;11461:1;11458;11451:12;11413:52;11493:9;11487:16;11512:28;11534:5;11512:28;:::i;11575:772::-;11956:3;11994:6;11988:13;12010:53;12056:6;12051:3;12044:4;12036:6;12032:17;12010:53;:::i;:::-;12124:3;12085:16;;;12110:18;;;12153:13;;12175:65;12153:13;12227:1;12216:13;;12209:4;12197:17;;12175:65;:::i;:::-;12307:7;12303:1;12259:20;;;;12295:10;;;12288:27;12339:1;12331:10;;11575:772;-1:-1:-1;;;;11575:772:416:o;13163:184::-;13215:77;13212:1;13205:88;13312:4;13309:1;13302:15;13336:4;13333:1;13326:15;13352:125;13392:4;13420:1;13417;13414:8;13411:34;;;13425:18;;:::i;:::-;-1:-1:-1;13462:9:416;;13352:125::o;13482:128::-;13522:3;13553:1;13549:6;13546:1;13543:13;13540:39;;;13559:18;;:::i;:::-;-1:-1:-1;13595:9:416;;13482:128::o;14446:228::-;14486:7;14612:1;14544:66;14540:74;14537:1;14534:81;14529:1;14522:9;14515:17;14511:105;14508:131;;;14619:18;;:::i;:::-;-1:-1:-1;14659:9:416;;14446:228::o;14679:184::-;14731:77;14728:1;14721:88;14828:4;14825:1;14818:15;14852:4;14849:1;14842:15;14868:196;14907:3;14935:5;14925:39;;14944:18;;:::i;:::-;-1:-1:-1;14991:66:416;14980:78;;14868:196::o;15556:545::-;15658:2;15653:3;15650:11;15647:448;;;15694:1;15719:5;15715:2;15708:17;15764:4;15760:2;15750:19;15834:2;15822:10;15818:19;15815:1;15811:27;15805:4;15801:38;15870:4;15858:10;15855:20;15852:47;;;-1:-1:-1;15893:4:416;15852:47;15948:2;15943:3;15939:12;15936:1;15932:20;15926:4;15922:31;15912:41;;16003:82;16021:2;16014:5;16011:13;16003:82;;;16066:17;;;16047:1;16036:13;16003:82;;;16007:3;;;15556:545;;;:::o;16337:1471::-;16463:3;16457:10;16490:18;16482:6;16479:30;16476:56;;;16512:18;;:::i;:::-;16541:97;16631:6;16591:38;16623:4;16617:11;16591:38;:::i;:::-;16585:4;16541:97;:::i;:::-;16693:4;;16757:2;16746:14;;16774:1;16769:782;;;;17595:1;17612:6;17609:89;;;-1:-1:-1;17664:19:416;;;17658:26;17609:89;16243:66;16234:1;16230:11;;;16226:84;16222:89;16212:100;16318:1;16314:11;;;16209:117;17711:81;;16739:1063;;16769:782;15503:1;15496:14;;;15540:4;15527:18;;16817:66;16805:79;;;16982:236;16996:7;16993:1;16990:14;16982:236;;;17085:19;;;17079:26;17064:42;;17177:27;;;;17145:1;17133:14;;;;17012:19;;16982:236;;;16986:3;17246:6;17237:7;17234:19;17231:261;;;17307:19;;;17301:26;17408:66;17390:1;17386:14;;;17402:3;17382:24;17378:97;17374:102;17359:118;17344:134;;17231:261;-1:-1:-1;;;;;17538:1:416;17522:14;;;17518:22;17505:36;;-1:-1:-1;16337:1471:416:o;17813:512::-;18007:4;18036:42;18117:2;18109:6;18105:15;18094:9;18087:34;18169:2;18161:6;18157:15;18152:2;18141:9;18137:18;18130:43;;18209:6;18204:2;18193:9;18189:18;18182:34;18252:3;18247:2;18236:9;18232:18;18225:31;18273:46;18314:3;18303:9;18299:19;18291:6;18273:46;:::i;:::-;18265:54;17813:512;-1:-1:-1;;;;;;17813:512:416:o;18330:249::-;18399:6;18452:2;18440:9;18431:7;18427:23;18423:32;18420:52;;;18468:1;18465;18458:12;18420:52;18500:9;18494:16;18519:30;18543:5;18519:30;:::i","linkReferences":{},"immutableReferences":{"118439":[{"start":556,"length":32},{"start":2793,"length":32}],"118443":[{"start":1006,"length":32},{"start":2880,"length":32}],"118447":[{"start":967,"length":32},{"start":3337,"length":32}]}},"methodIdentifiers":{"ATTESTATION_STATION()":"db083d71","BASE_URI_ATTESTATION_KEY()":"21d3d5cf","BASE_URI_ATTESTOR()":"19f463f2","OPTIMIST_ALLOWLIST()":"ce5dd1b5","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","baseURI()":"6c0360eb","burn(uint256)":"42966c68","getApproved(uint256)":"081812fc","initialize(string,string)":"4cd88b76","isApprovedForAll(address,address)":"e985e9c5","isOnAllowList(address)":"8f328a1f","mint(address)":"6a627842","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenIdOfAddress(address)":"7c08652f","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_baseURIAttestor\",\"type\":\"address\"},{\"internalType\":\"contract AttestationStation\",\"name\":\"_attestationStation\",\"type\":\"address\"},{\"internalType\":\"contract OptimistAllowlist\",\"name\":\"_optimistAllowlist\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":[],\"name\":\"ATTESTATION_STATION\",\"outputs\":[{\"internalType\":\"contract AttestationStation\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BASE_URI_ATTESTATION_KEY\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BASE_URI_ATTESTOR\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPTIMIST_ALLOWLIST\",\"outputs\":[{\"internalType\":\"contract OptimistAllowlist\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"uri_\",\"type\":\"string\"}],\"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\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"name\":\"initialize\",\"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\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"isOnAllowList\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"allowed_\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"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\":\"\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"\",\"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\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"tokenIdOfAddress\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"uri_\",\"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\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Optimism CollectiveGitcoin\",\"kind\":\"dev\",\"methods\":{\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"baseURI()\":{\"returns\":{\"uri_\":\"BaseURI for all tokens.\"}},\"burn(uint256)\":{\"details\":\"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator.\"},\"constructor\":{\"params\":{\"_attestationStation\":\"Address of the AttestationStation contract.\",\"_baseURIAttestor\":\"Address of the baseURI attestor.\",\"_name\":\"Token name.\",\"_optimistAllowlist\":\"Address of the OptimistAllowlist contract\",\"_symbol\":\"Token symbol.\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"initialize(string,string)\":{\"params\":{\"_name\":\"Token name.\",\"_symbol\":\"Token symbol.\"}},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"isOnAllowList(address)\":{\"returns\":{\"allowed_\":\"Whether or not the address is allowed to mint yet.\"}},\"mint(address)\":{\"params\":{\"_recipient\":\"Address of the token recipient.\"}},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenIdOfAddress(address)\":{\"returns\":{\"_0\":\"Token ID for the token owned by the given address.\"}},\"tokenURI(uint256)\":{\"params\":{\"_tokenId\":\"Token ID to query.\"},\"returns\":{\"uri_\":\"Token URI for the given token by ID.\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"stateVariables\":{\"version\":{\"custom:semver\":\"2.1.0\"}},\"title\":\"Optimist\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"ATTESTATION_STATION()\":{\"notice\":\"Address of the AttestationStation contract.\"},\"BASE_URI_ATTESTATION_KEY()\":{\"notice\":\"Attestation key used by the attestor to attest the baseURI.\"},\"BASE_URI_ATTESTOR()\":{\"notice\":\"Attestor who attests to baseURI.\"},\"OPTIMIST_ALLOWLIST()\":{\"notice\":\"Address of the OptimistAllowlist contract.\"},\"approve(address,uint256)\":{\"notice\":\"Disabled for the Optimist NFT (Soul Bound Token).\"},\"baseURI()\":{\"notice\":\"Returns the baseURI for all tokens.\"},\"initialize(string,string)\":{\"notice\":\"Initializes the Optimist contract.\"},\"isOnAllowList(address)\":{\"notice\":\"Checks OptimistAllowlist to determine whether a given address is allowed to mint         the Optimist NFT. Since the Optimist NFT will also be used as part of the         Citizens House, mints are currently restricted. Eventually anyone will be able         to mint.\"},\"mint(address)\":{\"notice\":\"Allows an address to mint an Optimist NFT. Token ID is the uint256 representation         of the recipient's address. Recipients must be permitted to mint, eventually anyone         will be able to mint. One token per address.\"},\"setApprovalForAll(address,bool)\":{\"notice\":\"Disabled for the Optimist NFT (Soul Bound Token).\"},\"tokenIdOfAddress(address)\":{\"notice\":\"Returns the token ID for the token owned by a given address. This is the uint256         representation of the given address.\"},\"tokenURI(uint256)\":{\"notice\":\"Returns the token URI for a given token by ID\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"A Soul Bound Token for real humans only(tm).\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/op-nft/Optimist.sol\":\"Optimist\"},\"evmVersion\":\"london\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0x5331c8909221d9f9f3851cfadd5959d0873413a2c27e30e0f2fa234158c1c6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31c7d52f47a9174e236c0402654f42c16516c58c6851862f3bcb1b440b873498\",\"dweb:/ipfs/QmZQqiofa8jPJCCAfWyjNnBuoGXrR56Ct4HyW4ugRWfvCb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol\":{\"keccak256\":\"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a\",\"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2\",\"dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol\":{\"keccak256\":\"0xa7dbff7171ac06a023a5ca52c2138ac711037b2146b9197a52e5de4f9183e04d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77dec5f0117e876e485db228ec24a29b0e8215bf94762bfcc80fec670c5fad97\",\"dweb:/ipfs/Qmf1iZ7jqNWgGFs5zwrKVinZ8RsCZjzufqhE7zDnEgam5x\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":{\"keccak256\":\"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3\",\"dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c\",\"dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"src/periphery/op-nft/AttestationStation.sol\":{\"keccak256\":\"0x756accab2fc86dbe076dc340af05c06c732815392a8cbab6524dc971d4957208\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4bf7f1a162318d31c39a4d34d46ada80cdacd51c24a110f411ec245c1b6a4ef\",\"dweb:/ipfs/QmScehXXWTKDnUr9ohMb1o8zButujNP9SDAWRSnDy6jpdK\"]},\"src/periphery/op-nft/Optimist.sol\":{\"keccak256\":\"0x9768e340e1818e675b49fc2e3b9643a9e17f5e16d368b2de57b12bc2f546dae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3287317b2cb9d619e39180d68734f3358848a9c7ce8c98ec5740c4712debabe0\",\"dweb:/ipfs/QmdVqLgs5kCPzCdnPP3DffpU9RvGCzKTcZf7ku9VXXNbxz\"]},\"src/periphery/op-nft/OptimistAllowlist.sol\":{\"keccak256\":\"0xd05ecf4ac35004c36e862734eb19a70cdc52bf187c52a5bd4b882b7c0bf52d77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca3c5ed23a7ae0e6e2864974a903e5aa5e34959cf8ad05ce946b9dce24482a80\",\"dweb:/ipfs/QmdgnFg8mh1s81qn7kBUkJNtnEpEzh6Q53WL4HjQDDbrfU\"]},\"src/periphery/op-nft/libraries/OptimistConstants.sol\":{\"keccak256\":\"0x901c8a2a333a668ef2a6336a803dd06fea51d4128a38087af4565bff1ae6db8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87e68615dea2494b1cd8f96d7ad97ccb9556d00539526b53a7ce5314570fc268\",\"dweb:/ipfs/QmZBNNrSVMKz4GDkRJyp5jjV6V4wGN7ySAhDd1pBvbJkS2\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"address","name":"_baseURIAttestor","type":"address"},{"internalType":"contract AttestationStation","name":"_attestationStation","type":"address"},{"internalType":"contract OptimistAllowlist","name":"_optimistAllowlist","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","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":[],"stateMutability":"view","type":"function","name":"ATTESTATION_STATION","outputs":[{"internalType":"contract AttestationStation","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_URI_ATTESTATION_KEY","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_URI_ATTESTOR","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPTIMIST_ALLOWLIST","outputs":[{"internalType":"contract OptimistAllowlist","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"baseURI","outputs":[{"internalType":"string","name":"uri_","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"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":[{"internalType":"address","name":"_recipient","type":"address"}],"stateMutability":"view","type":"function","name":"isOnAllowList","outputs":[{"internalType":"bool","name":"allowed_","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"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":"","type":"address"},{"internalType":"bool","name":"","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":"address","name":"_owner","type":"address"}],"stateMutability":"pure","type":"function","name":"tokenIdOfAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"uri_","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":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"baseURI()":{"returns":{"uri_":"BaseURI for all tokens."}},"burn(uint256)":{"details":"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator."},"constructor":{"params":{"_attestationStation":"Address of the AttestationStation contract.","_baseURIAttestor":"Address of the baseURI attestor.","_name":"Token name.","_optimistAllowlist":"Address of the OptimistAllowlist contract","_symbol":"Token symbol."}},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"initialize(string,string)":{"params":{"_name":"Token name.","_symbol":"Token symbol."}},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"isOnAllowList(address)":{"returns":{"allowed_":"Whether or not the address is allowed to mint yet."}},"mint(address)":{"params":{"_recipient":"Address of the token recipient."}},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenIdOfAddress(address)":{"returns":{"_0":"Token ID for the token owned by the given address."}},"tokenURI(uint256)":{"params":{"_tokenId":"Token ID to query."},"returns":{"uri_":"Token URI for the given token by ID."}},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}},"version":1},"userdoc":{"kind":"user","methods":{"ATTESTATION_STATION()":{"notice":"Address of the AttestationStation contract."},"BASE_URI_ATTESTATION_KEY()":{"notice":"Attestation key used by the attestor to attest the baseURI."},"BASE_URI_ATTESTOR()":{"notice":"Attestor who attests to baseURI."},"OPTIMIST_ALLOWLIST()":{"notice":"Address of the OptimistAllowlist contract."},"approve(address,uint256)":{"notice":"Disabled for the Optimist NFT (Soul Bound Token)."},"baseURI()":{"notice":"Returns the baseURI for all tokens."},"initialize(string,string)":{"notice":"Initializes the Optimist contract."},"isOnAllowList(address)":{"notice":"Checks OptimistAllowlist to determine whether a given address is allowed to mint         the Optimist NFT. Since the Optimist NFT will also be used as part of the         Citizens House, mints are currently restricted. Eventually anyone will be able         to mint."},"mint(address)":{"notice":"Allows an address to mint an Optimist NFT. Token ID is the uint256 representation         of the recipient's address. Recipients must be permitted to mint, eventually anyone         will be able to mint. One token per address."},"setApprovalForAll(address,bool)":{"notice":"Disabled for the Optimist NFT (Soul Bound Token)."},"tokenIdOfAddress(address)":{"notice":"Returns the token ID for the token owned by a given address. This is the uint256         representation of the given address."},"tokenURI(uint256)":{"notice":"Returns the token URI for a given token by ID"},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/op-nft/Optimist.sol":"Optimist"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol":{"keccak256":"0x5331c8909221d9f9f3851cfadd5959d0873413a2c27e30e0f2fa234158c1c6cf","urls":["bzz-raw://31c7d52f47a9174e236c0402654f42c16516c58c6851862f3bcb1b440b873498","dweb:/ipfs/QmZQqiofa8jPJCCAfWyjNnBuoGXrR56Ct4HyW4ugRWfvCb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol":{"keccak256":"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5","urls":["bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a","dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol":{"keccak256":"0x016298e66a5810253c6c905e61966bb31c8775c3f3517bf946ff56ee31d6c005","urls":["bzz-raw://1723de5ae414f210db039b19e6487c19c2d643483c9be7c445cf481a80c199d2","dweb:/ipfs/QmcBLbmPdZsNngYhA1KDadNUqQZoGACytFWuUH74RC4AXC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol":{"keccak256":"0xa7dbff7171ac06a023a5ca52c2138ac711037b2146b9197a52e5de4f9183e04d","urls":["bzz-raw://77dec5f0117e876e485db228ec24a29b0e8215bf94762bfcc80fec670c5fad97","dweb:/ipfs/Qmf1iZ7jqNWgGFs5zwrKVinZ8RsCZjzufqhE7zDnEgam5x"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol":{"keccak256":"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70","urls":["bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3","dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863","urls":["bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c","dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a","urls":["bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7","dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"src/periphery/op-nft/AttestationStation.sol":{"keccak256":"0x756accab2fc86dbe076dc340af05c06c732815392a8cbab6524dc971d4957208","urls":["bzz-raw://a4bf7f1a162318d31c39a4d34d46ada80cdacd51c24a110f411ec245c1b6a4ef","dweb:/ipfs/QmScehXXWTKDnUr9ohMb1o8zButujNP9SDAWRSnDy6jpdK"],"license":"MIT"},"src/periphery/op-nft/Optimist.sol":{"keccak256":"0x9768e340e1818e675b49fc2e3b9643a9e17f5e16d368b2de57b12bc2f546dae7","urls":["bzz-raw://3287317b2cb9d619e39180d68734f3358848a9c7ce8c98ec5740c4712debabe0","dweb:/ipfs/QmdVqLgs5kCPzCdnPP3DffpU9RvGCzKTcZf7ku9VXXNbxz"],"license":"MIT"},"src/periphery/op-nft/OptimistAllowlist.sol":{"keccak256":"0xd05ecf4ac35004c36e862734eb19a70cdc52bf187c52a5bd4b882b7c0bf52d77","urls":["bzz-raw://ca3c5ed23a7ae0e6e2864974a903e5aa5e34959cf8ad05ce946b9dce24482a80","dweb:/ipfs/QmdgnFg8mh1s81qn7kBUkJNtnEpEzh6Q53WL4HjQDDbrfU"],"license":"MIT"},"src/periphery/op-nft/libraries/OptimistConstants.sol":{"keccak256":"0x901c8a2a333a668ef2a6336a803dd06fea51d4128a38087af4565bff1ae6db8c","urls":["bzz-raw://87e68615dea2494b1cd8f96d7ad97ccb9556d00539526b53a7ce5314570fc268","dweb:/ipfs/QmZBNNrSVMKz4GDkRJyp5jjV6V4wGN7ySAhDd1pBvbJkS2"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":47581,"contract":"src/periphery/op-nft/Optimist.sol:Optimist","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":47584,"contract":"src/periphery/op-nft/Optimist.sol:Optimist","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":49112,"contract":"src/periphery/op-nft/Optimist.sol:Optimist","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":49920,"contract":"src/periphery/op-nft/Optimist.sol:Optimist","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":47754,"contract":"src/periphery/op-nft/Optimist.sol:Optimist","label":"_name","offset":0,"slot":"101","type":"t_string_storage"},{"astId":47756,"contract":"src/periphery/op-nft/Optimist.sol:Optimist","label":"_symbol","offset":0,"slot":"102","type":"t_string_storage"},{"astId":47760,"contract":"src/periphery/op-nft/Optimist.sol:Optimist","label":"_owners","offset":0,"slot":"103","type":"t_mapping(t_uint256,t_address)"},{"astId":47764,"contract":"src/periphery/op-nft/Optimist.sol:Optimist","label":"_balances","offset":0,"slot":"104","type":"t_mapping(t_address,t_uint256)"},{"astId":47768,"contract":"src/periphery/op-nft/Optimist.sol:Optimist","label":"_tokenApprovals","offset":0,"slot":"105","type":"t_mapping(t_uint256,t_address)"},{"astId":47774,"contract":"src/periphery/op-nft/Optimist.sol:Optimist","label":"_operatorApprovals","offset":0,"slot":"106","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"},{"astId":48616,"contract":"src/periphery/op-nft/Optimist.sol:Optimist","label":"__gap","offset":0,"slot":"107","type":"t_array(t_uint256)44_storage"},{"astId":48800,"contract":"src/periphery/op-nft/Optimist.sol:Optimist","label":"__gap","offset":0,"slot":"151","type":"t_array(t_uint256)50_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)44_storage":{"encoding":"inplace","label":"uint256[44]","numberOfBytes":"1408","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"ATTESTATION_STATION()":{"notice":"Address of the AttestationStation contract."},"BASE_URI_ATTESTATION_KEY()":{"notice":"Attestation key used by the attestor to attest the baseURI."},"BASE_URI_ATTESTOR()":{"notice":"Attestor who attests to baseURI."},"OPTIMIST_ALLOWLIST()":{"notice":"Address of the OptimistAllowlist contract."},"approve(address,uint256)":{"notice":"Disabled for the Optimist NFT (Soul Bound Token)."},"baseURI()":{"notice":"Returns the baseURI for all tokens."},"initialize(string,string)":{"notice":"Initializes the Optimist contract."},"isOnAllowList(address)":{"notice":"Checks OptimistAllowlist to determine whether a given address is allowed to mint         the Optimist NFT. Since the Optimist NFT will also be used as part of the         Citizens House, mints are currently restricted. Eventually anyone will be able         to mint."},"mint(address)":{"notice":"Allows an address to mint an Optimist NFT. Token ID is the uint256 representation         of the recipient's address. Recipients must be permitted to mint, eventually anyone         will be able to mint. One token per address."},"setApprovalForAll(address,bool)":{"notice":"Disabled for the Optimist NFT (Soul Bound Token)."},"tokenIdOfAddress(address)":{"notice":"Returns the token ID for the token owned by a given address. This is the uint256         representation of the given address."},"tokenURI(uint256)":{"notice":"Returns the token URI for a given token by ID"},"version()":{"notice":"Semantic version."}},"notice":"A Soul Bound Token for real humans only(tm)."},"devdoc":{"version":1,"kind":"dev","author":"Optimism CollectiveGitcoin","methods":{"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"baseURI()":{"returns":{"uri_":"BaseURI for all tokens."}},"burn(uint256)":{"details":"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator."},"constructor":{"params":{"_attestationStation":"Address of the AttestationStation contract.","_baseURIAttestor":"Address of the baseURI attestor.","_name":"Token name.","_optimistAllowlist":"Address of the OptimistAllowlist contract","_symbol":"Token symbol."}},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"initialize(string,string)":{"params":{"_name":"Token name.","_symbol":"Token symbol."}},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"isOnAllowList(address)":{"returns":{"allowed_":"Whether or not the address is allowed to mint yet."}},"mint(address)":{"params":{"_recipient":"Address of the token recipient."}},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenIdOfAddress(address)":{"returns":{"_0":"Token ID for the token owned by the given address."}},"tokenURI(uint256)":{"params":{"_tokenId":"Token ID to query."},"returns":{"uri_":"Token URI for the given token by ID."}},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}},"title":"Optimist"},"ast":{"absolutePath":"src/periphery/op-nft/Optimist.sol","id":118673,"exportedSymbols":{"AttestationStation":[118412],"ERC721BurnableUpgradeable":[48801],"ISemver":[122319],"Optimist":[118672],"OptimistAllowlist":[118845],"Strings":[54202]},"nodeType":"SourceUnit","src":"32:5323:247","nodes":[{"id":118414,"nodeType":"PragmaDirective","src":"32:23:247","nodes":[],"literals":["solidity","0.8",".15"]},{"id":118416,"nodeType":"ImportDirective","src":"57:52:247","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":118673,"sourceUnit":122320,"symbolAliases":[{"foreign":{"id":118415,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122319,"src":"66:7:247","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":118418,"nodeType":"ImportDirective","src":"110:138:247","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721BurnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":118673,"sourceUnit":48802,"symbolAliases":[{"foreign":{"id":118417,"name":"ERC721BurnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48801,"src":"119:25:247","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":118420,"nodeType":"ImportDirective","src":"249:81:247","nodes":[],"absolutePath":"src/periphery/op-nft/AttestationStation.sol","file":"src/periphery/op-nft/AttestationStation.sol","nameLocation":"-1:-1:-1","scope":118673,"sourceUnit":118413,"symbolAliases":[{"foreign":{"id":118419,"name":"AttestationStation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118412,"src":"258:18:247","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":118422,"nodeType":"ImportDirective","src":"331:79:247","nodes":[],"absolutePath":"src/periphery/op-nft/OptimistAllowlist.sol","file":"src/periphery/op-nft/OptimistAllowlist.sol","nameLocation":"-1:-1:-1","scope":118673,"sourceUnit":118846,"symbolAliases":[{"foreign":{"id":118421,"name":"OptimistAllowlist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118845,"src":"340:17:247","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":118424,"nodeType":"ImportDirective","src":"411:68:247","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","file":"@openzeppelin/contracts/utils/Strings.sol","nameLocation":"-1:-1:-1","scope":118673,"sourceUnit":54203,"symbolAliases":[{"foreign":{"id":118423,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54202,"src":"420:7:247","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":118672,"nodeType":"ContractDefinition","src":"611:4743:247","nodes":[{"id":118436,"nodeType":"VariableDeclaration","src":"749:79:247","nodes":[],"constant":true,"documentation":{"id":118430,"nodeType":"StructuredDocumentation","src":"673:71:247","text":"@notice Attestation key used by the attestor to attest the baseURI."},"functionSelector":"21d3d5cf","mutability":"constant","name":"BASE_URI_ATTESTATION_KEY","nameLocation":"773:24:247","scope":118672,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":118431,"name":"bytes32","nodeType":"ElementaryTypeName","src":"749:7:247","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"6f7074696d6973742e626173652d757269","id":118434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"808:19:247","typeDescriptions":{"typeIdentifier":"t_stringliteral_014a6a9ee0e44fcdd248666ebd106d1f3359129395303493f6dfd82f476dada3","typeString":"literal_string \"optimist.base-uri\""},"value":"optimist.base-uri"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_014a6a9ee0e44fcdd248666ebd106d1f3359129395303493f6dfd82f476dada3","typeString":"literal_string \"optimist.base-uri\""}],"id":118433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"800:7:247","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":118432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"800:7:247","typeDescriptions":{}}},"id":118435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"800:28:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":118439,"nodeType":"VariableDeclaration","src":"884:42:247","nodes":[],"constant":false,"documentation":{"id":118437,"nodeType":"StructuredDocumentation","src":"835:44:247","text":"@notice Attestor who attests to baseURI."},"functionSelector":"19f463f2","mutability":"immutable","name":"BASE_URI_ATTESTOR","nameLocation":"909:17:247","scope":118672,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":118438,"name":"address","nodeType":"ElementaryTypeName","src":"884:7:247","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":118443,"nodeType":"VariableDeclaration","src":"993:55:247","nodes":[],"constant":false,"documentation":{"id":118440,"nodeType":"StructuredDocumentation","src":"933:55:247","text":"@notice Address of the AttestationStation contract."},"functionSelector":"db083d71","mutability":"immutable","name":"ATTESTATION_STATION","nameLocation":"1029:19:247","scope":118672,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AttestationStation_$118412","typeString":"contract AttestationStation"},"typeName":{"id":118442,"nodeType":"UserDefinedTypeName","pathNode":{"id":118441,"name":"AttestationStation","nodeType":"IdentifierPath","referencedDeclaration":118412,"src":"993:18:247"},"referencedDeclaration":118412,"src":"993:18:247","typeDescriptions":{"typeIdentifier":"t_contract$_AttestationStation_$118412","typeString":"contract AttestationStation"}},"visibility":"public"},{"id":118447,"nodeType":"VariableDeclaration","src":"1114:53:247","nodes":[],"constant":false,"documentation":{"id":118444,"nodeType":"StructuredDocumentation","src":"1055:54:247","text":"@notice Address of the OptimistAllowlist contract."},"functionSelector":"ce5dd1b5","mutability":"immutable","name":"OPTIMIST_ALLOWLIST","nameLocation":"1149:18:247","scope":118672,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OptimistAllowlist_$118845","typeString":"contract OptimistAllowlist"},"typeName":{"id":118446,"nodeType":"UserDefinedTypeName","pathNode":{"id":118445,"name":"OptimistAllowlist","nodeType":"IdentifierPath","referencedDeclaration":118845,"src":"1114:17:247"},"referencedDeclaration":118845,"src":"1114:17:247","typeDescriptions":{"typeIdentifier":"t_contract$_OptimistAllowlist_$118845","typeString":"contract OptimistAllowlist"}},"visibility":"public"},{"id":118451,"nodeType":"VariableDeclaration","src":"1237:40:247","nodes":[],"baseFunctions":[122318],"constant":true,"documentation":{"id":118448,"nodeType":"StructuredDocumentation","src":"1174:58:247","text":"@notice Semantic version.\n @custom:semver 2.1.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"1260:7:247","scope":118672,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":118449,"name":"string","nodeType":"ElementaryTypeName","src":"1237:6:247","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"322e312e30","id":118450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1270:7:247","typeDescriptions":{"typeIdentifier":"t_stringliteral_3bb4aeded157fe72f9bc813a9dc1bd69961c5b5f35dafc6dc601ab742eacac6b","typeString":"literal_string \"2.1.0\""},"value":"2.1.0"},"visibility":"public"},{"id":118485,"nodeType":"FunctionDefinition","src":"1604:395:247","nodes":[],"body":{"id":118484,"nodeType":"Block","src":"1810:189:247","nodes":[],"statements":[{"expression":{"id":118469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":118467,"name":"BASE_URI_ATTESTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118439,"src":"1820:17:247","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":118468,"name":"_baseURIAttestor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118458,"src":"1840:16:247","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1820:36:247","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":118470,"nodeType":"ExpressionStatement","src":"1820:36:247"},{"expression":{"id":118473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":118471,"name":"ATTESTATION_STATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118443,"src":"1866:19:247","typeDescriptions":{"typeIdentifier":"t_contract$_AttestationStation_$118412","typeString":"contract AttestationStation"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":118472,"name":"_attestationStation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118461,"src":"1888:19:247","typeDescriptions":{"typeIdentifier":"t_contract$_AttestationStation_$118412","typeString":"contract AttestationStation"}},"src":"1866:41:247","typeDescriptions":{"typeIdentifier":"t_contract$_AttestationStation_$118412","typeString":"contract AttestationStation"}},"id":118474,"nodeType":"ExpressionStatement","src":"1866:41:247"},{"expression":{"id":118477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":118475,"name":"OPTIMIST_ALLOWLIST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118447,"src":"1917:18:247","typeDescriptions":{"typeIdentifier":"t_contract$_OptimistAllowlist_$118845","typeString":"contract OptimistAllowlist"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":118476,"name":"_optimistAllowlist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118464,"src":"1938:18:247","typeDescriptions":{"typeIdentifier":"t_contract$_OptimistAllowlist_$118845","typeString":"contract OptimistAllowlist"}},"src":"1917:39:247","typeDescriptions":{"typeIdentifier":"t_contract$_OptimistAllowlist_$118845","typeString":"contract OptimistAllowlist"}},"id":118478,"nodeType":"ExpressionStatement","src":"1917:39:247"},{"expression":{"arguments":[{"id":118480,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118454,"src":"1977:5:247","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":118481,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118456,"src":"1984:7:247","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":118479,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118504,"src":"1966:10:247","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":118482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1966:26:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":118483,"nodeType":"ExpressionStatement","src":"1966:26:247"}]},"documentation":{"id":118452,"nodeType":"StructuredDocumentation","src":"1284:315:247","text":"@param _name               Token name.\n @param _symbol             Token symbol.\n @param _baseURIAttestor    Address of the baseURI attestor.\n @param _attestationStation Address of the AttestationStation contract.\n @param _optimistAllowlist  Address of the OptimistAllowlist contract"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":118465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118454,"mutability":"mutable","name":"_name","nameLocation":"1639:5:247","nodeType":"VariableDeclaration","scope":118485,"src":"1625:19:247","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":118453,"name":"string","nodeType":"ElementaryTypeName","src":"1625:6:247","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":118456,"mutability":"mutable","name":"_symbol","nameLocation":"1668:7:247","nodeType":"VariableDeclaration","scope":118485,"src":"1654:21:247","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":118455,"name":"string","nodeType":"ElementaryTypeName","src":"1654:6:247","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":118458,"mutability":"mutable","name":"_baseURIAttestor","nameLocation":"1693:16:247","nodeType":"VariableDeclaration","scope":118485,"src":"1685:24:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":118457,"name":"address","nodeType":"ElementaryTypeName","src":"1685:7:247","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":118461,"mutability":"mutable","name":"_attestationStation","nameLocation":"1738:19:247","nodeType":"VariableDeclaration","scope":118485,"src":"1719:38:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AttestationStation_$118412","typeString":"contract AttestationStation"},"typeName":{"id":118460,"nodeType":"UserDefinedTypeName","pathNode":{"id":118459,"name":"AttestationStation","nodeType":"IdentifierPath","referencedDeclaration":118412,"src":"1719:18:247"},"referencedDeclaration":118412,"src":"1719:18:247","typeDescriptions":{"typeIdentifier":"t_contract$_AttestationStation_$118412","typeString":"contract AttestationStation"}},"visibility":"internal"},{"constant":false,"id":118464,"mutability":"mutable","name":"_optimistAllowlist","nameLocation":"1785:18:247","nodeType":"VariableDeclaration","scope":118485,"src":"1767:36:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OptimistAllowlist_$118845","typeString":"contract OptimistAllowlist"},"typeName":{"id":118463,"nodeType":"UserDefinedTypeName","pathNode":{"id":118462,"name":"OptimistAllowlist","nodeType":"IdentifierPath","referencedDeclaration":118845,"src":"1767:17:247"},"referencedDeclaration":118845,"src":"1767:17:247","typeDescriptions":{"typeIdentifier":"t_contract$_OptimistAllowlist_$118845","typeString":"contract OptimistAllowlist"}},"visibility":"internal"}],"src":"1615:194:247"},"returnParameters":{"id":118466,"nodeType":"ParameterList","parameters":[],"src":"1810:0:247"},"scope":118672,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":118504,"nodeType":"FunctionDefinition","src":"2128:162:247","nodes":[],"body":{"id":118503,"nodeType":"Block","src":"2211:79:247","nodes":[],"statements":[{"expression":{"arguments":[{"id":118496,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118488,"src":"2235:5:247","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":118497,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118490,"src":"2242:7:247","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":118495,"name":"__ERC721_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47790,"src":"2221:13:247","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":118498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2221:29:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":118499,"nodeType":"ExpressionStatement","src":"2221:29:247"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":118500,"name":"__ERC721Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48769,"src":"2260:21:247","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":118501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2260:23:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":118502,"nodeType":"ExpressionStatement","src":"2260:23:247"}]},"documentation":{"id":118486,"nodeType":"StructuredDocumentation","src":"2005:118:247","text":"@notice Initializes the Optimist contract.\n @param _name   Token name.\n @param _symbol Token symbol."},"functionSelector":"4cd88b76","implemented":true,"kind":"function","modifiers":[{"id":118493,"kind":"modifierInvocation","modifierName":{"id":118492,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":47645,"src":"2199:11:247"},"nodeType":"ModifierInvocation","src":"2199:11:247"}],"name":"initialize","nameLocation":"2137:10:247","parameters":{"id":118491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118488,"mutability":"mutable","name":"_name","nameLocation":"2162:5:247","nodeType":"VariableDeclaration","scope":118504,"src":"2148:19:247","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":118487,"name":"string","nodeType":"ElementaryTypeName","src":"2148:6:247","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":118490,"mutability":"mutable","name":"_symbol","nameLocation":"2183:7:247","nodeType":"VariableDeclaration","scope":118504,"src":"2169:21:247","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":118489,"name":"string","nodeType":"ElementaryTypeName","src":"2169:6:247","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2147:44:247"},"returnParameters":{"id":118494,"nodeType":"ParameterList","parameters":[],"src":"2211:0:247"},"scope":118672,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":118525,"nodeType":"FunctionDefinition","src":"2613:194:247","nodes":[],"body":{"id":118524,"nodeType":"Block","src":"2654:153:247","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":118512,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118507,"src":"2686:10:247","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":118511,"name":"isOnAllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118597,"src":"2672:13:247","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":118513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2672:25:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d6973743a2061646472657373206973206e6f74206f6e20616c6c6f774c697374","id":118514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2699:39:247","typeDescriptions":{"typeIdentifier":"t_stringliteral_c7b6182f789be6fc394fdc8ce80534d330b0ece65731aa1c69c0f6b325757aaf","typeString":"literal_string \"Optimist: address is not on allowList\""},"value":"Optimist: address is not on allowList"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c7b6182f789be6fc394fdc8ce80534d330b0ece65731aa1c69c0f6b325757aaf","typeString":"literal_string \"Optimist: address is not on allowList\""}],"id":118510,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2664:7:247","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":118515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2664:75:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":118516,"nodeType":"ExpressionStatement","src":"2664:75:247"},{"expression":{"arguments":[{"id":118518,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118507,"src":"2759:10:247","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":118520,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118507,"src":"2788:10:247","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":118519,"name":"tokenIdOfAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118614,"src":"2771:16:247","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_uint256_$","typeString":"function (address) pure returns (uint256)"}},"id":118521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2771:28:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":118517,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[48227,48256],"referencedDeclaration":48227,"src":"2749:9:247","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":118522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2749:51:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":118523,"nodeType":"ExpressionStatement","src":"2749:51:247"}]},"documentation":{"id":118505,"nodeType":"StructuredDocumentation","src":"2296:312:247","text":"@notice Allows an address to mint an Optimist NFT. Token ID is the uint256 representation\n         of the recipient's address. Recipients must be permitted to mint, eventually anyone\n         will be able to mint. One token per address.\n @param _recipient Address of the token recipient."},"functionSelector":"6a627842","implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"2622:4:247","parameters":{"id":118508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118507,"mutability":"mutable","name":"_recipient","nameLocation":"2635:10:247","nodeType":"VariableDeclaration","scope":118525,"src":"2627:18:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":118506,"name":"address","nodeType":"ElementaryTypeName","src":"2627:7:247","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2626:20:247"},"returnParameters":{"id":118509,"nodeType":"ParameterList","parameters":[],"src":"2654:0:247"},"scope":118672,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":118553,"nodeType":"FunctionDefinition","src":"2910:258:247","nodes":[],"body":{"id":118552,"nodeType":"Block","src":"2970:198:247","nodes":[],"statements":[{"expression":{"id":118550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":118531,"name":"uri_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118529,"src":"2980:4:247","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":118538,"name":"BASE_URI_ATTESTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118439,"src":"3074:17:247","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":118541,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3101:4:247","typeDescriptions":{"typeIdentifier":"t_contract$_Optimist_$118672","typeString":"contract Optimist"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Optimist_$118672","typeString":"contract Optimist"}],"id":118540,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3093:7:247","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":118539,"name":"address","nodeType":"ElementaryTypeName","src":"3093:7:247","typeDescriptions":{}}},"id":118542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3093:13:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"6f7074696d6973742e626173652d757269","id":118545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3116:19:247","typeDescriptions":{"typeIdentifier":"t_stringliteral_014a6a9ee0e44fcdd248666ebd106d1f3359129395303493f6dfd82f476dada3","typeString":"literal_string \"optimist.base-uri\""},"value":"optimist.base-uri"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_014a6a9ee0e44fcdd248666ebd106d1f3359129395303493f6dfd82f476dada3","typeString":"literal_string \"optimist.base-uri\""}],"id":118544,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3108:7:247","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":118543,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3108:7:247","typeDescriptions":{}}},"id":118546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3108:28:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":118536,"name":"ATTESTATION_STATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118443,"src":"3041:19:247","typeDescriptions":{"typeIdentifier":"t_contract$_AttestationStation_$118412","typeString":"contract AttestationStation"}},"id":118537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"attestations","nodeType":"MemberAccess","referencedDeclaration":118323,"src":"3041:32:247","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$_t_bytes32_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,address,bytes32) view external returns (bytes memory)"}},"id":118547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3041:96:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":118534,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3007:3:247","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":118535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"3007:16:247","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":118548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3007:144:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":118533,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2987:6:247","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":118532,"name":"string","nodeType":"ElementaryTypeName","src":"2987:6:247","typeDescriptions":{}}},"id":118549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2987:174:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2980:181:247","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":118551,"nodeType":"ExpressionStatement","src":"2980:181:247"}]},"documentation":{"id":118526,"nodeType":"StructuredDocumentation","src":"2813:92:247","text":"@notice Returns the baseURI for all tokens.\n @return uri_ BaseURI for all tokens."},"functionSelector":"6c0360eb","implemented":true,"kind":"function","modifiers":[],"name":"baseURI","nameLocation":"2919:7:247","parameters":{"id":118527,"nodeType":"ParameterList","parameters":[],"src":"2926:2:247"},"returnParameters":{"id":118530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118529,"mutability":"mutable","name":"uri_","nameLocation":"2964:4:247","nodeType":"VariableDeclaration","scope":118553,"src":"2950:18:247","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":118528,"name":"string","nodeType":"ElementaryTypeName","src":"2950:6:247","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2949:20:247"},"scope":118672,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":118581,"nodeType":"FunctionDefinition","src":"3337:385:247","nodes":[],"body":{"id":118580,"nodeType":"Block","src":"3431:291:247","nodes":[],"statements":[{"expression":{"id":118578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":118562,"name":"uri_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118560,"src":"3441:4:247","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":118567,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118553,"src":"3502:7:247","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":118568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3502:9:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2f","id":118569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3529:3:247","typeDescriptions":{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},"value":"/"},{"arguments":[{"id":118572,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118556,"src":"3653:8:247","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3230","id":118573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3663:2:247","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"expression":{"id":118570,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54202,"src":"3633:7:247","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$54202_$","typeString":"type(library Strings)"}},"id":118571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":54181,"src":"3633:19:247","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":118574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3633:33:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2e6a736f6e","id":118575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3684:7:247","typeDescriptions":{"typeIdentifier":"t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972","typeString":"literal_string \".json\""},"value":".json"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972","typeString":"literal_string \".json\""}],"expression":{"id":118565,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3468:3:247","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":118566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"3468:16:247","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":118576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3468:237:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":118564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3448:6:247","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":118563,"name":"string","nodeType":"ElementaryTypeName","src":"3448:6:247","typeDescriptions":{}}},"id":118577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3448:267:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3441:274:247","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":118579,"nodeType":"ExpressionStatement","src":"3441:274:247"}]},"baseFunctions":[47950],"documentation":{"id":118554,"nodeType":"StructuredDocumentation","src":"3174:158:247","text":"@notice Returns the token URI for a given token by ID\n @param _tokenId Token ID to query.\n @return uri_ Token URI for the given token by ID."},"functionSelector":"c87b56dd","implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"3346:8:247","overrides":{"id":118558,"nodeType":"OverrideSpecifier","overrides":[],"src":"3393:8:247"},"parameters":{"id":118557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118556,"mutability":"mutable","name":"_tokenId","nameLocation":"3363:8:247","nodeType":"VariableDeclaration","scope":118581,"src":"3355:16:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":118555,"name":"uint256","nodeType":"ElementaryTypeName","src":"3355:7:247","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3354:18:247"},"returnParameters":{"id":118561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118560,"mutability":"mutable","name":"uri_","nameLocation":"3425:4:247","nodeType":"VariableDeclaration","scope":118581,"src":"3411:18:247","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":118559,"name":"string","nodeType":"ElementaryTypeName","src":"3411:6:247","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3410:20:247"},"scope":118672,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":118597,"nodeType":"FunctionDefinition","src":"4111:153:247","nodes":[],"body":{"id":118596,"nodeType":"Block","src":"4190:74:247","nodes":[],"statements":[{"expression":{"id":118594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":118589,"name":"allowed_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118587,"src":"4200:8:247","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":118592,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118584,"src":"4246:10:247","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":118590,"name":"OPTIMIST_ALLOWLIST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118447,"src":"4211:18:247","typeDescriptions":{"typeIdentifier":"t_contract$_OptimistAllowlist_$118845","typeString":"contract OptimistAllowlist"}},"id":118591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isAllowedToMint","nodeType":"MemberAccess","referencedDeclaration":118767,"src":"4211:34:247","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":118593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4211:46:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4200:57:247","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":118595,"nodeType":"ExpressionStatement","src":"4200:57:247"}]},"documentation":{"id":118582,"nodeType":"StructuredDocumentation","src":"3728:378:247","text":"@notice Checks OptimistAllowlist to determine whether a given address is allowed to mint\n         the Optimist NFT. Since the Optimist NFT will also be used as part of the\n         Citizens House, mints are currently restricted. Eventually anyone will be able\n         to mint.\n @return allowed_ Whether or not the address is allowed to mint yet."},"functionSelector":"8f328a1f","implemented":true,"kind":"function","modifiers":[],"name":"isOnAllowList","nameLocation":"4120:13:247","parameters":{"id":118585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118584,"mutability":"mutable","name":"_recipient","nameLocation":"4142:10:247","nodeType":"VariableDeclaration","scope":118597,"src":"4134:18:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":118583,"name":"address","nodeType":"ElementaryTypeName","src":"4134:7:247","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4133:20:247"},"returnParameters":{"id":118588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118587,"mutability":"mutable","name":"allowed_","nameLocation":"4180:8:247","nodeType":"VariableDeclaration","scope":118597,"src":"4175:13:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":118586,"name":"bool","nodeType":"ElementaryTypeName","src":"4175:4:247","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4174:15:247"},"scope":118672,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":118614,"nodeType":"FunctionDefinition","src":"4487:120:247","nodes":[],"body":{"id":118613,"nodeType":"Block","src":"4559:48:247","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":118609,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118600,"src":"4592:6:247","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":118608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4584:7:247","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":118607,"name":"uint160","nodeType":"ElementaryTypeName","src":"4584:7:247","typeDescriptions":{}}},"id":118610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4584:15:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":118606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4576:7:247","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":118605,"name":"uint256","nodeType":"ElementaryTypeName","src":"4576:7:247","typeDescriptions":{}}},"id":118611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4576:24:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":118604,"id":118612,"nodeType":"Return","src":"4569:31:247"}]},"documentation":{"id":118598,"nodeType":"StructuredDocumentation","src":"4270:212:247","text":"@notice Returns the token ID for the token owned by a given address. This is the uint256\n         representation of the given address.\n @return Token ID for the token owned by the given address."},"functionSelector":"7c08652f","implemented":true,"kind":"function","modifiers":[],"name":"tokenIdOfAddress","nameLocation":"4496:16:247","parameters":{"id":118601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118600,"mutability":"mutable","name":"_owner","nameLocation":"4521:6:247","nodeType":"VariableDeclaration","scope":118614,"src":"4513:14:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":118599,"name":"address","nodeType":"ElementaryTypeName","src":"4513:7:247","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4512:16:247"},"returnParameters":{"id":118604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118603,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":118614,"src":"4550:7:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":118602,"name":"uint256","nodeType":"ElementaryTypeName","src":"4550:7:247","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4549:9:247"},"scope":118672,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":118628,"nodeType":"FunctionDefinition","src":"4679:109:247","nodes":[],"body":{"id":118627,"nodeType":"Block","src":"4735:53:247","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"4f7074696d6973743a20736f756c20626f756e6420746f6b656e","id":118624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4752:28:247","typeDescriptions":{"typeIdentifier":"t_stringliteral_e1d66ef547b36cf8faa733cc8ac878e924c6c002006dd64402fd676d130d6981","typeString":"literal_string \"Optimist: soul bound token\""},"value":"Optimist: soul bound token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e1d66ef547b36cf8faa733cc8ac878e924c6c002006dd64402fd676d130d6981","typeString":"literal_string \"Optimist: soul bound token\""}],"id":118623,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4745:6:247","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":118625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4745:36:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":118626,"nodeType":"ExpressionStatement","src":"4745:36:247"}]},"baseFunctions":[48002],"documentation":{"id":118615,"nodeType":"StructuredDocumentation","src":"4613:61:247","text":"@notice Disabled for the Optimist NFT (Soul Bound Token)."},"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4688:7:247","overrides":{"id":118621,"nodeType":"OverrideSpecifier","overrides":[],"src":"4726:8:247"},"parameters":{"id":118620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118617,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":118628,"src":"4696:7:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":118616,"name":"address","nodeType":"ElementaryTypeName","src":"4696:7:247","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":118619,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":118628,"src":"4705:7:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":118618,"name":"uint256","nodeType":"ElementaryTypeName","src":"4705:7:247","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4695:18:247"},"returnParameters":{"id":118622,"nodeType":"ParameterList","parameters":[],"src":"4735:0:247"},"scope":118672,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":118642,"nodeType":"FunctionDefinition","src":"4860:119:247","nodes":[],"body":{"id":118641,"nodeType":"Block","src":"4926:53:247","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"4f7074696d6973743a20736f756c20626f756e6420746f6b656e","id":118638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4943:28:247","typeDescriptions":{"typeIdentifier":"t_stringliteral_e1d66ef547b36cf8faa733cc8ac878e924c6c002006dd64402fd676d130d6981","typeString":"literal_string \"Optimist: soul bound token\""},"value":"Optimist: soul bound token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e1d66ef547b36cf8faa733cc8ac878e924c6c002006dd64402fd676d130d6981","typeString":"literal_string \"Optimist: soul bound token\""}],"id":118637,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4936:6:247","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":118639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4936:36:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":118640,"nodeType":"ExpressionStatement","src":"4936:36:247"}]},"baseFunctions":[48037],"documentation":{"id":118629,"nodeType":"StructuredDocumentation","src":"4794:61:247","text":"@notice Disabled for the Optimist NFT (Soul Bound Token)."},"functionSelector":"a22cb465","implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4869:17:247","overrides":{"id":118635,"nodeType":"OverrideSpecifier","overrides":[],"src":"4917:8:247"},"parameters":{"id":118634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118631,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":118642,"src":"4887:7:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":118630,"name":"address","nodeType":"ElementaryTypeName","src":"4887:7:247","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":118633,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":118642,"src":"4896:4:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":118632,"name":"bool","nodeType":"ElementaryTypeName","src":"4896:4:247","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4886:15:247"},"returnParameters":{"id":118636,"nodeType":"ParameterList","parameters":[],"src":"4926:0:247"},"scope":118672,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":118671,"nodeType":"FunctionDefinition","src":"5163:189:247","nodes":[],"body":{"id":118670,"nodeType":"Block","src":"5256:96:247","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":118666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":118659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":118654,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118645,"src":"5274:5:247","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":118657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5291:1:247","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":118656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5283:7:247","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":118655,"name":"address","nodeType":"ElementaryTypeName","src":"5283:7:247","typeDescriptions":{}}},"id":118658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5283:10:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5274:19:247","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":118665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":118660,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118647,"src":"5297:3:247","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":118663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5312:1:247","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":118662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5304:7:247","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":118661,"name":"address","nodeType":"ElementaryTypeName","src":"5304:7:247","typeDescriptions":{}}},"id":118664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5304:10:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5297:17:247","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5274:40:247","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d6973743a20736f756c20626f756e6420746f6b656e","id":118667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5316:28:247","typeDescriptions":{"typeIdentifier":"t_stringliteral_e1d66ef547b36cf8faa733cc8ac878e924c6c002006dd64402fd676d130d6981","typeString":"literal_string \"Optimist: soul bound token\""},"value":"Optimist: soul bound token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e1d66ef547b36cf8faa733cc8ac878e924c6c002006dd64402fd676d130d6981","typeString":"literal_string \"Optimist: soul bound token\""}],"id":118653,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5266:7:247","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":118668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5266:79:247","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":118669,"nodeType":"ExpressionStatement","src":"5266:79:247"}]},"baseFunctions":[48600],"documentation":{"id":118643,"nodeType":"StructuredDocumentation","src":"4985:173:247","text":"@notice Prevents transfers of the Optimist NFT (Soul Bound Token).\n @param _from Address of the token sender.\n @param _to   Address of the token recipient."},"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"5172:20:247","overrides":{"id":118651,"nodeType":"OverrideSpecifier","overrides":[],"src":"5247:8:247"},"parameters":{"id":118650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118645,"mutability":"mutable","name":"_from","nameLocation":"5201:5:247","nodeType":"VariableDeclaration","scope":118671,"src":"5193:13:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":118644,"name":"address","nodeType":"ElementaryTypeName","src":"5193:7:247","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":118647,"mutability":"mutable","name":"_to","nameLocation":"5216:3:247","nodeType":"VariableDeclaration","scope":118671,"src":"5208:11:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":118646,"name":"address","nodeType":"ElementaryTypeName","src":"5208:7:247","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":118649,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":118671,"src":"5221:7:247","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":118648,"name":"uint256","nodeType":"ElementaryTypeName","src":"5221:7:247","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5192:37:247"},"returnParameters":{"id":118652,"nodeType":"ParameterList","parameters":[],"src":"5256:0:247"},"scope":118672,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":118426,"name":"ERC721BurnableUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":48801,"src":"632:25:247"},"id":118427,"nodeType":"InheritanceSpecifier","src":"632:25:247"},{"baseName":{"id":118428,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":122319,"src":"659:7:247"},"id":118429,"nodeType":"InheritanceSpecifier","src":"659:7:247"}],"canonicalName":"Optimist","contractDependencies":[],"contractKind":"contract","documentation":{"id":118425,"nodeType":"StructuredDocumentation","src":"481:130:247","text":"@author Optimism Collective\n @author Gitcoin\n @title  Optimist\n @notice A Soul Bound Token for real humans only(tm)."},"fullyImplemented":true,"linearizedBaseContracts":[118672,122319,48801,48617,48828,48751,49921,49933,49113,47725],"name":"Optimist","nameLocation":"620:8:247","scope":118673,"usedErrors":[]}],"license":"MIT"},"id":247}