{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"create","inputs":[{"name":"_gameType","type":"uint32","internalType":"GameType"},{"name":"_rootClaim","type":"bytes32","internalType":"Claim"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"proxy_","type":"address","internalType":"contract IDisputeGame"}],"stateMutability":"payable"},{"type":"function","name":"findLatestGames","inputs":[{"name":"_gameType","type":"uint32","internalType":"GameType"},{"name":"_start","type":"uint256","internalType":"uint256"},{"name":"_n","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"games_","type":"tuple[]","internalType":"struct IDisputeGameFactory.GameSearchResult[]","components":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"metadata","type":"bytes32","internalType":"GameId"},{"name":"timestamp","type":"uint64","internalType":"Timestamp"},{"name":"rootClaim","type":"bytes32","internalType":"Claim"},{"name":"extraData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"gameAtIndex","inputs":[{"name":"_index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"gameType_","type":"uint32","internalType":"GameType"},{"name":"timestamp_","type":"uint64","internalType":"Timestamp"},{"name":"proxy_","type":"address","internalType":"contract IDisputeGame"}],"stateMutability":"view"},{"type":"function","name":"gameCount","inputs":[],"outputs":[{"name":"gameCount_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"gameImpls","inputs":[{"name":"","type":"uint32","internalType":"GameType"}],"outputs":[{"name":"","type":"address","internalType":"contract IDisputeGame"}],"stateMutability":"view"},{"type":"function","name":"games","inputs":[{"name":"_gameType","type":"uint32","internalType":"GameType"},{"name":"_rootClaim","type":"bytes32","internalType":"Claim"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"proxy_","type":"address","internalType":"contract IDisputeGame"},{"name":"timestamp_","type":"uint64","internalType":"Timestamp"}],"stateMutability":"view"},{"type":"function","name":"getGameUUID","inputs":[{"name":"_gameType","type":"uint32","internalType":"GameType"},{"name":"_rootClaim","type":"bytes32","internalType":"Claim"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"uuid_","type":"bytes32","internalType":"Hash"}],"stateMutability":"pure"},{"type":"function","name":"initBonds","inputs":[{"name":"","type":"uint32","internalType":"GameType"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setImplementation","inputs":[{"name":"_gameType","type":"uint32","internalType":"GameType"},{"name":"_impl","type":"address","internalType":"contract IDisputeGame"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setInitBond","inputs":[{"name":"_gameType","type":"uint32","internalType":"GameType"},{"name":"_initBond","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"DisputeGameCreated","inputs":[{"name":"disputeProxy","type":"address","indexed":true,"internalType":"address"},{"name":"gameType","type":"uint32","indexed":true,"internalType":"GameType"},{"name":"rootClaim","type":"bytes32","indexed":true,"internalType":"Claim"}],"anonymous":false},{"type":"event","name":"ImplementationSet","inputs":[{"name":"impl","type":"address","indexed":true,"internalType":"address"},{"name":"gameType","type":"uint32","indexed":true,"internalType":"GameType"}],"anonymous":false},{"type":"event","name":"InitBondUpdated","inputs":[{"name":"gameType","type":"uint32","indexed":true,"internalType":"GameType"},{"name":"newBond","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"GameAlreadyExists","inputs":[{"name":"uuid","type":"bytes32","internalType":"Hash"}]},{"type":"error","name":"IncorrectBondAmount","inputs":[]},{"type":"error","name":"NoImplementation","inputs":[{"name":"gameType","type":"uint32","internalType":"GameType"}]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506200001e600062000024565b62000292565b600054610100900460ff1615808015620000455750600054600160ff909116105b8062000075575062000062306200016260201b62000cdd1760201c565b15801562000075575060005460ff166001145b620000de5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000102576000805461ff0019166101001790555b6200010c62000171565b6200011782620001d9565b80156200015e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b03163b151590565b600054610100900460ff16620001cd5760405162461bcd60e51b815260206004820152602b60248201526000805160206200185283398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000d5565b620001d76200022b565b565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16620002875760405162461bcd60e51b815260206004820152602b60248201526000805160206200185283398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000d5565b620001d733620001d9565b6115b080620002a26000396000f3fe6080604052600436106100e85760003560e01c80636593dc6e1161008a57806396cd97201161005957806396cd972014610313578063bb8aa1fc14610333578063c4d66de814610394578063f2fde38b146103b457600080fd5b80636593dc6e14610293578063715018a6146102c057806382ecf2f6146102d55780638da5cb5b146102e857600080fd5b8063254bd683116100c6578063254bd6831461019c5780634d1975b4146101c957806354fd4d50146101e85780635f0150cb1461023e57600080fd5b806314f6b1a3146100ed5780631b685b9e1461010f5780631e3342401461017c575b600080fd5b3480156100f957600080fd5b5061010d6101083660046110bf565b6103d4565b005b34801561011b57600080fd5b5061015261012a3660046110f6565b60656020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561018857600080fd5b5061010d610197366004611111565b61045e565b3480156101a857600080fd5b506101bc6101b736600461113b565b6104aa565b60405161017391906111e8565b3480156101d557600080fd5b506068545b604051908152602001610173565b3480156101f457600080fd5b506102316040518060400160405280600581526020017f302e362e3000000000000000000000000000000000000000000000000000000081525081565b60405161017391906112a5565b34801561024a57600080fd5b5061025e6102593660046112b8565b6106ee565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835267ffffffffffffffff909116602083015201610173565b34801561029f57600080fd5b506101da6102ae3660046110f6565b60666020526000908152604090205481565b3480156102cc57600080fd5b5061010d610741565b6101526102e33660046112b8565b610755565b3480156102f457600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610152565b34801561031f57600080fd5b506101da61032e3660046112b8565b6109ef565b34801561033f57600080fd5b5061035361034e36600461133f565b610a28565b6040805163ffffffff909416845267ffffffffffffffff909216602084015273ffffffffffffffffffffffffffffffffffffffff1690820152606001610173565b3480156103a057600080fd5b5061010d6103af366004611358565b610a8a565b3480156103c057600080fd5b5061010d6103cf366004611358565b610c26565b6103dc610cf9565b63ffffffff821660008181526065602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616908117909155905190917fff513d80e2c7fa487608f70a618dfbc0cf415699dc69588c747e8c71566c88de91a35050565b610466610cf9565b63ffffffff8216600081815260666020526040808220849055518392917f74d6665c4b26d5596a5aa13d3014e0c06af4d322075a797f87b03cd4c5bc91ca91a35050565b606854606090831015806104bc575081155b6106e7575060408051600583901b8101602001909152825b8381116106e5576000606882815481106104f0576104f0611375565b600091825260209091200154905060e081901c60a082901c67ffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff831663ffffffff891683036106b6576001865101865260008173ffffffffffffffffffffffffffffffffffffffff1663609d33346040518163ffffffff1660e01b8152600401600060405180830381865afa15801561058a573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526105d091908101906113d3565b905060008273ffffffffffffffffffffffffffffffffffffffff1663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561061f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610643919061149e565b90506040518060a001604052808881526020018781526020018567ffffffffffffffff168152602001828152602001838152508860018a5161068591906114b7565b8151811061069557610695611375565b6020026020010181905250888851106106b3575050505050506106e5565b50505b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191506104d49050565b505b9392505050565b60008060006106ff878787876109ef565b60009081526067602052604090205473ffffffffffffffffffffffffffffffffffffffff81169860a09190911c67ffffffffffffffff16975095505050505050565b610749610cf9565b6107536000610d7a565b565b63ffffffff841660009081526065602052604081205473ffffffffffffffffffffffffffffffffffffffff16806107c5576040517f031c6de400000000000000000000000000000000000000000000000000000000815263ffffffff871660048201526024015b60405180910390fd5b63ffffffff86166000908152606660205260409020543414610813576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006108206001436114b7565b40905061088a338783888860405160200161083f9594939291906114f5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905273ffffffffffffffffffffffffffffffffffffffff841690610df1565b92508273ffffffffffffffffffffffffffffffffffffffff16638129fc1c346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156108d457600080fd5b505af11580156108e8573d6000803e3d6000fd5b505050505060006108fb888888886109ef565b60008181526067602052604090205490915015610947576040517f014f6fe5000000000000000000000000000000000000000000000000000000008152600481018290526024016107bc565b60004260a01b60e08a901b178517600083815260676020526040808220839055606880546001810182559083527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977530183905551919250899163ffffffff8c169173ffffffffffffffffffffffffffffffffffffffff8916917f5b565efe82411da98814f356d0e7bcb8f0219b8d970307c5afb4a6903a8b2e359190a450505050949350505050565b600084848484604051602001610a089493929190611542565b604051602081830303815290604052805190602001209050949350505050565b6000806000610a7d60688581548110610a4357610a43611375565b906000526020600020015460e081901c9160a082901c67ffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff1690565b9196909550909350915050565b600054610100900460ff1615808015610aaa5750600054600160ff909116105b80610ac45750303b158015610ac4575060005460ff166001145b610b50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107bc565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610bae57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610bb6610dff565b610bbf82610d7a565b8015610c2257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b610c2e610cf9565b73ffffffffffffffffffffffffffffffffffffffff8116610cd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107bc565b610cda81610d7a565b50565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60335473ffffffffffffffffffffffffffffffffffffffff163314610753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107bc565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006106e760008484610e9e565b600054610100900460ff16610e96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107bc565b610753610fe4565b600060608203516040830351602084035184518060208701018051600283016c5af43d3d93803e606057fd5bf3895289600d8a035278593da1005b363d3d373d3d3d3d610000806062363936013d738160481b1760218a03527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff603a8a035272fd6100003d81600a3d39f336602c57343d527f6062820160781b1761ff9e82106059018a03528060f01b8352606c8101604c8a038cf097505086610f6a5763301164256000526004601cfd5b905285527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08501527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08401527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa09092019190915292915050565b600054610100900460ff1661107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107bc565b61075333610d7a565b803563ffffffff8116811461109857600080fd5b919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610cda57600080fd5b600080604083850312156110d257600080fd5b6110db83611084565b915060208301356110eb8161109d565b809150509250929050565b60006020828403121561110857600080fd5b6106e782611084565b6000806040838503121561112457600080fd5b61112d83611084565b946020939093013593505050565b60008060006060848603121561115057600080fd5b61115984611084565b95602085013595506040909401359392505050565b60005b83811015611189578181015183820152602001611171565b83811115611198576000848401525b50505050565b600081518084526111b681602086016020860161116e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015611297578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001855281518051845287810151888501528681015167ffffffffffffffff16878501526060808201519085015260809081015160a0918501829052906112838186018361119e565b96890196945050509086019060010161120f565b509098975050505050505050565b6020815260006106e7602083018461119e565b600080600080606085870312156112ce57600080fd5b6112d785611084565b935060208501359250604085013567ffffffffffffffff808211156112fb57600080fd5b818701915087601f83011261130f57600080fd5b81358181111561131e57600080fd5b88602082850101111561133057600080fd5b95989497505060200194505050565b60006020828403121561135157600080fd5b5035919050565b60006020828403121561136a57600080fd5b81356106e78161109d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156113e557600080fd5b815167ffffffffffffffff808211156113fd57600080fd5b818401915084601f83011261141157600080fd5b815181811115611423576114236113a4565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715611469576114696113a4565b8160405282815287602084870101111561148257600080fd5b61149383602083016020880161116e565b979650505050505050565b6000602082840312156114b057600080fd5b5051919050565b6000828210156114f0577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500390565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008660601b1681528460148201528360348201528183605483013760009101605401908152949350505050565b63ffffffff8516815283602082015260606040820152816060820152818360808301376000818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101939250505056fea164736f6c634300080f000a496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","sourceMap":"989:7456:163:-:0;;;1965:74;;;;;;;;;-1:-1:-1;2010:22:163::1;2029:1;2010:10;:22::i;:::-;989:7456:::0;;2136:124;3111:19:27;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:27;;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:27;;;;;:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:27;;216:2:357;3157:201:27;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:357;;;338:44;399:19;;3157:201:27;;;;;;;;;3368:12;:16;;-1:-1:-1;;3368:16:27;3383:1;3368:16;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;3428:20:27;;;;;3394:65;2201:16:163::1;:14;:16::i;:::-;2227:26;2246:6:::0;2227:18:::1;:26::i;:::-;3483:14:27::0;3479:99;;;3529:5;3513:21;;-1:-1:-1;;3513:21:27;;;3553:14;;-1:-1:-1;581:36:357;;3553:14:27;;569:2:357;554:18;3553:14:27;;;;;;;3479:99;3101:483;2136:124:163;:::o;1186:320:33:-;-1:-1:-1;;;;;1476:19:33;;:23;;;1186:320::o;1003:95:26:-;4910:13:27;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:27;;830:2:357;4902:69:27;;;812:21:357;869:2;849:18;;;842:30;-1:-1:-1;;;;;;;;;;;888:18:357;;;881:62;-1:-1:-1;;;959:18:357;;;952:41;1010:19;;4902:69:27;628:407:357;4902:69:27;1065:26:26::1;:24;:26::i;:::-;1003:95::o:0;2673:187::-;2765:6;;;-1:-1:-1;;;;;2781:17:26;;;-1:-1:-1;;;;;;2781:17:26;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;1104:111::-;4910:13:27;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:27;;830:2:357;4902:69:27;;;812:21:357;869:2;849:18;;;842:30;-1:-1:-1;;;;;;;;;;;888:18:357;;;881:62;-1:-1:-1;;;959:18:357;;;952:41;1010:19;;4902:69:27;628:407:357;4902:69:27;1176:32:26::1;929:10:34::0;1176:18:26::1;:32::i;628:407:357:-:0;989:7456:163;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100e85760003560e01c80636593dc6e1161008a57806396cd97201161005957806396cd972014610313578063bb8aa1fc14610333578063c4d66de814610394578063f2fde38b146103b457600080fd5b80636593dc6e14610293578063715018a6146102c057806382ecf2f6146102d55780638da5cb5b146102e857600080fd5b8063254bd683116100c6578063254bd6831461019c5780634d1975b4146101c957806354fd4d50146101e85780635f0150cb1461023e57600080fd5b806314f6b1a3146100ed5780631b685b9e1461010f5780631e3342401461017c575b600080fd5b3480156100f957600080fd5b5061010d6101083660046110bf565b6103d4565b005b34801561011b57600080fd5b5061015261012a3660046110f6565b60656020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561018857600080fd5b5061010d610197366004611111565b61045e565b3480156101a857600080fd5b506101bc6101b736600461113b565b6104aa565b60405161017391906111e8565b3480156101d557600080fd5b506068545b604051908152602001610173565b3480156101f457600080fd5b506102316040518060400160405280600581526020017f302e362e3000000000000000000000000000000000000000000000000000000081525081565b60405161017391906112a5565b34801561024a57600080fd5b5061025e6102593660046112b8565b6106ee565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835267ffffffffffffffff909116602083015201610173565b34801561029f57600080fd5b506101da6102ae3660046110f6565b60666020526000908152604090205481565b3480156102cc57600080fd5b5061010d610741565b6101526102e33660046112b8565b610755565b3480156102f457600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610152565b34801561031f57600080fd5b506101da61032e3660046112b8565b6109ef565b34801561033f57600080fd5b5061035361034e36600461133f565b610a28565b6040805163ffffffff909416845267ffffffffffffffff909216602084015273ffffffffffffffffffffffffffffffffffffffff1690820152606001610173565b3480156103a057600080fd5b5061010d6103af366004611358565b610a8a565b3480156103c057600080fd5b5061010d6103cf366004611358565b610c26565b6103dc610cf9565b63ffffffff821660008181526065602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616908117909155905190917fff513d80e2c7fa487608f70a618dfbc0cf415699dc69588c747e8c71566c88de91a35050565b610466610cf9565b63ffffffff8216600081815260666020526040808220849055518392917f74d6665c4b26d5596a5aa13d3014e0c06af4d322075a797f87b03cd4c5bc91ca91a35050565b606854606090831015806104bc575081155b6106e7575060408051600583901b8101602001909152825b8381116106e5576000606882815481106104f0576104f0611375565b600091825260209091200154905060e081901c60a082901c67ffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff831663ffffffff891683036106b6576001865101865260008173ffffffffffffffffffffffffffffffffffffffff1663609d33346040518163ffffffff1660e01b8152600401600060405180830381865afa15801561058a573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526105d091908101906113d3565b905060008273ffffffffffffffffffffffffffffffffffffffff1663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561061f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610643919061149e565b90506040518060a001604052808881526020018781526020018567ffffffffffffffff168152602001828152602001838152508860018a5161068591906114b7565b8151811061069557610695611375565b6020026020010181905250888851106106b3575050505050506106e5565b50505b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191506104d49050565b505b9392505050565b60008060006106ff878787876109ef565b60009081526067602052604090205473ffffffffffffffffffffffffffffffffffffffff81169860a09190911c67ffffffffffffffff16975095505050505050565b610749610cf9565b6107536000610d7a565b565b63ffffffff841660009081526065602052604081205473ffffffffffffffffffffffffffffffffffffffff16806107c5576040517f031c6de400000000000000000000000000000000000000000000000000000000815263ffffffff871660048201526024015b60405180910390fd5b63ffffffff86166000908152606660205260409020543414610813576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006108206001436114b7565b40905061088a338783888860405160200161083f9594939291906114f5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905273ffffffffffffffffffffffffffffffffffffffff841690610df1565b92508273ffffffffffffffffffffffffffffffffffffffff16638129fc1c346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156108d457600080fd5b505af11580156108e8573d6000803e3d6000fd5b505050505060006108fb888888886109ef565b60008181526067602052604090205490915015610947576040517f014f6fe5000000000000000000000000000000000000000000000000000000008152600481018290526024016107bc565b60004260a01b60e08a901b178517600083815260676020526040808220839055606880546001810182559083527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977530183905551919250899163ffffffff8c169173ffffffffffffffffffffffffffffffffffffffff8916917f5b565efe82411da98814f356d0e7bcb8f0219b8d970307c5afb4a6903a8b2e359190a450505050949350505050565b600084848484604051602001610a089493929190611542565b604051602081830303815290604052805190602001209050949350505050565b6000806000610a7d60688581548110610a4357610a43611375565b906000526020600020015460e081901c9160a082901c67ffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff1690565b9196909550909350915050565b600054610100900460ff1615808015610aaa5750600054600160ff909116105b80610ac45750303b158015610ac4575060005460ff166001145b610b50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107bc565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610bae57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610bb6610dff565b610bbf82610d7a565b8015610c2257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b610c2e610cf9565b73ffffffffffffffffffffffffffffffffffffffff8116610cd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107bc565b610cda81610d7a565b50565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60335473ffffffffffffffffffffffffffffffffffffffff163314610753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107bc565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006106e760008484610e9e565b600054610100900460ff16610e96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107bc565b610753610fe4565b600060608203516040830351602084035184518060208701018051600283016c5af43d3d93803e606057fd5bf3895289600d8a035278593da1005b363d3d373d3d3d3d610000806062363936013d738160481b1760218a03527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff603a8a035272fd6100003d81600a3d39f336602c57343d527f6062820160781b1761ff9e82106059018a03528060f01b8352606c8101604c8a038cf097505086610f6a5763301164256000526004601cfd5b905285527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08501527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08401527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa09092019190915292915050565b600054610100900460ff1661107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107bc565b61075333610d7a565b803563ffffffff8116811461109857600080fd5b919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610cda57600080fd5b600080604083850312156110d257600080fd5b6110db83611084565b915060208301356110eb8161109d565b809150509250929050565b60006020828403121561110857600080fd5b6106e782611084565b6000806040838503121561112457600080fd5b61112d83611084565b946020939093013593505050565b60008060006060848603121561115057600080fd5b61115984611084565b95602085013595506040909401359392505050565b60005b83811015611189578181015183820152602001611171565b83811115611198576000848401525b50505050565b600081518084526111b681602086016020860161116e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015611297578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001855281518051845287810151888501528681015167ffffffffffffffff16878501526060808201519085015260809081015160a0918501829052906112838186018361119e565b96890196945050509086019060010161120f565b509098975050505050505050565b6020815260006106e7602083018461119e565b600080600080606085870312156112ce57600080fd5b6112d785611084565b935060208501359250604085013567ffffffffffffffff808211156112fb57600080fd5b818701915087601f83011261130f57600080fd5b81358181111561131e57600080fd5b88602082850101111561133057600080fd5b95989497505060200194505050565b60006020828403121561135157600080fd5b5035919050565b60006020828403121561136a57600080fd5b81356106e78161109d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156113e557600080fd5b815167ffffffffffffffff808211156113fd57600080fd5b818401915084601f83011261141157600080fd5b815181811115611423576114236113a4565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715611469576114696113a4565b8160405282815287602084870101111561148257600080fd5b61149383602083016020880161116e565b979650505050505050565b6000602082840312156114b057600080fd5b5051919050565b6000828210156114f0577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500390565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008660601b1681528460148201528360348201528183605483013760009101605401908152949350505050565b63ffffffff8516815283602082015260606040820152816060820152818360808301376000818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101939250505056fea164736f6c634300080f000a","sourceMap":"989:7456:163:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8027:190;;;;;;;;;;-1:-1:-1;8027:190:163;;;;;:::i;:::-;;:::i;:::-;;1338:50;;;;;;;;;;-1:-1:-1;1338:50:163;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1237:42:357;1225:55;;;1207:74;;1195:2;1180:18;1338:50:163;;;;;;;;8263:180;;;;;;;;;;-1:-1:-1;8263:180:163;;;;;:::i;:::-;;:::i;6052:1929::-;;;;;;;;;;-1:-1:-1;6052:1929:163;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2306:117::-;;;;;;;;;;-1:-1:-1;2393:16:163;:23;2306:117;;;4100:25:357;;;4088:2;4073:18;2306:117:163;3954:177:357;1251:40:163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2469:342::-;;;;;;;;;;-1:-1:-1;2469:342:163;;;;;:::i;:::-;;:::i;:::-;;;;5437:42:357;5425:55;;;5407:74;;5529:18;5517:31;;;5512:2;5497:18;;5490:59;5380:18;2469:342:163;5179:376:357;1435:45:163;;;;;;;;;;-1:-1:-1;1435:45:163;;;;;:::i;:::-;;;;;;;;;;;;;;2071:101:26;;;;;;;;;;;;;:::i;3138:2553:163:-;;;;;;:::i;:::-;;:::i;1441:85:26:-;;;;;;;;;;-1:-1:-1;1513:6:26;;;;1441:85;;5737:269:163;;;;;;;;;;-1:-1:-1;5737:269:163;;;;;:::i;:::-;;:::i;2857:235::-;;;;;;;;;;-1:-1:-1;2857:235:163;;;;;:::i;:::-;;:::i;:::-;;;;6501:10:357;6489:23;;;6471:42;;6561:18;6549:31;;;6544:2;6529:18;;6522:59;6629:42;6617:55;6597:18;;;6590:83;6459:2;6444:18;2857:235:163;6185:494:357;2136:124:163;;;;;;;;;;-1:-1:-1;2136:124:163;;;;;:::i;:::-;;:::i;2321:198:26:-;;;;;;;;;;-1:-1:-1;2321:198:26;;;;;:::i;:::-;;:::i;8027:190:163:-;1334:13:26;:11;:13::i;:::-;8123:20:163::1;::::0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;:28;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;;8166:44;;8123:28;;8166:44:::1;::::0;::::1;8027:190:::0;;:::o;8263:180::-;1334:13:26;:11;:13::i;:::-;8352:20:163::1;::::0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;:32;;;8399:37;8375:9;;8352:20;8399:37:::1;::::0;::::1;8263:180:::0;;:::o;6052:1929::-;6384:16;:23;6202:32;;6374:33;;;;:44;;-1:-1:-1;6411:7:163;;6374:44;6420:13;6370:63;-1:-1:-1;6690:4:163;6684:11;;6747:4;6743:13;;;6721:37;;6737:4;6721:37;6708:51;;;6891:6;6874:1101;6914:6;6909:1;:11;6874:1101;;6937:9;6949:16;6966:1;6949:19;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;1277:3:174;1273:17;;;1325:3;1321:17;;;1340:18;1317:42;1399;1386:56;;7093:13:163;;;7075:33;;7071:834;;7433:4;7424:6;7418:13;7414:24;7406:6;7399:40;7475:22;7500:5;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7475:42;;7535:15;7553:5;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7535:35;;7616:226;;;;;;;;7662:1;7616:226;;;;7695:2;7616:226;;;;7730:9;7616:226;;;;;;7772:9;7616:226;;;;7814:9;7616:226;;;7588:6;7611:1;7595:6;:13;:17;;;;:::i;:::-;7588:25;;;;;;;;:::i;:::-;;;;;;:254;;;;7881:2;7864:6;:13;:19;7860:30;;7885:5;;;;;;;;7860:30;7110:795;;7071:834;-1:-1:-1;;7947:3:163;;;;;-1:-1:-1;6874:1101:163;;-1:-1:-1;6874:1101:163;;;6052:1929;;;;;;:::o;2469:342::-;2626:19;2647:20;2683:9;2695:46;2707:9;2718:10;2730;;2695:11;:46::i;:::-;2776:19;;;;:13;:19;;;;;;1399:42:174;1386:56;;;1325:3;1321:17;;;;1340:18;1317:42;;-1:-1:-1;2751:53:163;-1:-1:-1;;;;;;2469:342:163:o;2071:101:26:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;3138:2553:163:-;3424:20;;;3299:19;3424:20;;;:9;:20;;;;;;;;;3539:67;;3579:27;;;;;8982:10:357;8970:23;;3579:27:163;;;8952:42:357;8925:18;;3579:27:163;;;;;;;;3539:67;3701:20;;;;;;;:9;:20;;;;;;3688:9;:33;3684:67;;3730:21;;;;;;;;;;;;;;3684:67;3807:18;3838:16;3853:1;3838:12;:16;:::i;:::-;3828:27;3807:48;;4890:85;4927:10;4939;4951;4963;;4910:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;4890:19;;;;;:85::i;:::-;4868:108;;4986:6;:17;;;5012:9;4986:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5099:9;5111:46;5123:9;5134:10;5146;;5111:11;:46::i;:::-;5290:1;5258:19;;;:13;:19;;;;;;5099:58;;-1:-1:-1;5244:48:163;5240:84;;5301:23;;;;;;;;4100:25:357;;;4073:18;;5301:23:163;3954:177:357;5240:84:163;5364:9;5424:15;767:3:174;763:20;746:3;742:19;;;739:45;736:61;;5552:19:163;;;;:13;:19;;;;;;:24;;;5586:16;:25;;;;;;;;;;;;;;;5626:58;5364:86;;-1:-1:-1;5673:10:163;;5626:58;;;;;;;;;;5552:19;5626:58;3324:2367;;;;3138:2553;;;;;;:::o;5737:269::-;5898:10;5963:9;5974:10;5986;;5952:45;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5942:56;;;;;;5924:75;;5737:269;;;;;;:::o;2857:235::-;2941:18;2961:20;2983:19;3052:33;:16;3069:6;3052:24;;;;;;;;:::i;:::-;;;;;;;;;1277:3:174;1273:17;;;;1325:3;1321:17;;;1340:18;1317:42;;1399;1386:56;;1077:381;3052:33:163;3018:67;;;;-1:-1:-1;3018:67:163;;-1:-1:-1;2857:235:163;-1:-1:-1;;2857:235:163:o;2136:124::-;3111:19:27;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:27;;3212:1;3197:12;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:27;1476:19:33;:23;;;3219:66:27;;-1:-1:-1;3268:12:27;;;;;:17;3219:66;3157:201;;;;;;;10469:2:357;3157:201:27;;;10451:21:357;10508:2;10488:18;;;10481:30;10547:34;10527:18;;;10520:62;10618:16;10598:18;;;10591:44;10652:19;;3157:201:27;10267:410:357;3157:201:27;3368:12;:16;;;;3383:1;3368:16;;;3394:65;;;;3428:13;:20;;;;;;;;3394:65;2201:16:163::1;:14;:16::i;:::-;2227:26;2246:6;2227:18;:26::i;:::-;3483:14:27::0;3479:99;;;3529:5;3513:21;;;;;;3553:14;;-1:-1:-1;10834:36:357;;3553:14:27;;10822:2:357;10807:18;3553:14:27;;;;;;;3479:99;3101:483;2136:124:163;:::o;2321:198:26:-;1334:13;:11;:13::i;:::-;2409:22:::1;::::0;::::1;2401:73;;;::::0;::::1;::::0;;11083:2:357;2401:73:26::1;::::0;::::1;11065:21:357::0;11122:2;11102:18;;;11095:30;11161:34;11141:18;;;11134:62;11232:8;11212:18;;;11205:36;11258:19;;2401:73:26::1;10881:402:357::0;2401:73:26::1;2484:28;2503:8;2484:18;:28::i;:::-;2321:198:::0;:::o;1186:320:33:-;1476:19;;;:23;;;1186:320::o;1599:130:26:-;1513:6;;1662:23;1513:6;929:10:34;1662:23:26;1654:68;;;;;;;11490:2:357;1654:68:26;;;11472:21:357;;;11509:18;;;11502:30;11568:34;11548:18;;;11541:62;11620:18;;1654:68:26;11288:356:357;2673:187:26;2765:6;;;;2781:17;;;;;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;19667:152:99:-;19743:16;19782:30;19788:1;19791:14;19807:4;19782:5;:30::i;1003:95:26:-;4910:13:27;;;;;;;4902:69;;;;;;;11851:2:357;4902:69:27;;;11833:21:357;11890:2;11870:18;;;11863:30;11929:34;11909:18;;;11902:62;12000:13;11980:18;;;11973:41;12031:19;;4902:69:27;11649:407:357;4902:69:27;1065:26:26::1;:24;:26::i;19918:11162:99:-:0;20025:16;20200:4;20194;20190:15;20184:22;20251:4;20245;20241:15;20235:22;20302:4;20296;20292:15;20286:22;20345:4;20339:11;20399:10;20392:4;20386;20382:15;20378:32;20444:7;20438:14;20582:1;20570:10;20566:18;29569:28;29563:4;29556:42;29674:14;29667:4;29661;29657:15;29650:39;29877:52;29863:11;29857:4;29853:22;29850:80;29827:4;29821;29817:15;29793:151;30048:66;30041:4;30035;30031:15;30007:121;30449:40;30441:4;30428:11;30424:22;30418:4;30414:33;30411:79;30384:6;30371:11;30368:23;30362:4;30358:34;30352:4;30348:45;30141:363;30543:11;30537:4;30533:22;30524:7;30517:39;30630:4;30617:11;30613:22;30606:4;30600;30596:15;30589:5;30582:54;30570:66;;;30659:8;30649:136;;30700:10;30694:4;30687:24;30766:4;30760;30753:18;30649:136;30865:24;;30902;;30946:15;;;30939:33;30992:15;;;30985:33;31038:15;;;;31031:33;;;;19918:11162;;-1:-1:-1;;19918:11162:99:o;1104:111:26:-;4910:13:27;;;;;;;4902:69;;;;;;;11851:2:357;4902:69:27;;;11833:21:357;11890:2;11870:18;;;11863:30;11929:34;11909:18;;;11902:62;12000:13;11980:18;;;11973:41;12031:19;;4902:69:27;11649:407:357;4902:69:27;1176:32:26::1;929:10:34::0;1176:18:26::1;:32::i;14:186:357:-:0;104:20;;164:10;153:22;;143:33;;133:61;;190:1;187;180:12;133:61;14:186;;;:::o;205:168::-;305:42;298:5;294:54;287:5;284:65;274:93;;363:1;360;353:12;378:411;500:6;508;561:2;549:9;540:7;536:23;532:32;529:52;;;577:1;574;567:12;529:52;600:51;641:9;600:51;:::i;:::-;590:61;;701:2;690:9;686:18;673:32;714:45;753:5;714:45;:::i;:::-;778:5;768:15;;;378:411;;;;;:::o;794:239::-;884:6;937:2;925:9;916:7;912:23;908:32;905:52;;;953:1;950;943:12;905:52;976:51;1017:9;976:51;:::i;1292:307::-;1391:6;1399;1452:2;1440:9;1431:7;1427:23;1423:32;1420:52;;;1468:1;1465;1458:12;1420:52;1491:51;1532:9;1491:51;:::i;:::-;1481:61;1589:2;1574:18;;;;1561:32;;-1:-1:-1;;;1292:307:357:o;1604:375::-;1712:6;1720;1728;1781:2;1769:9;1760:7;1756:23;1752:32;1749:52;;;1797:1;1794;1787:12;1749:52;1820:51;1861:9;1820:51;:::i;:::-;1810:61;1918:2;1903:18;;1890:32;;-1:-1:-1;1969:2:357;1954:18;;;1941:32;;1604:375;-1:-1:-1;;;1604:375:357:o;1984:258::-;2056:1;2066:113;2080:6;2077:1;2074:13;2066:113;;;2156:11;;;2150:18;2137:11;;;2130:39;2102:2;2095:10;2066:113;;;2197:6;2194:1;2191:13;2188:48;;;2232:1;2223:6;2218:3;2214:16;2207:27;2188:48;;1984:258;;;:::o;2247:316::-;2288:3;2326:5;2320:12;2353:6;2348:3;2341:19;2369:63;2425:6;2418:4;2413:3;2409:14;2402:4;2395:5;2391:16;2369:63;:::i;:::-;2477:2;2465:15;2482:66;2461:88;2452:98;;;;2552:4;2448:109;;2247:316;-1:-1:-1;;2247:316:357:o;2568:1381::-;2782:4;2811:2;2851;2840:9;2836:18;2881:2;2870:9;2863:21;2904:6;2939;2933:13;2970:6;2962;2955:22;2996:2;2986:12;;3029:2;3018:9;3014:18;3007:25;;3091:2;3081:6;3078:1;3074:14;3063:9;3059:30;3055:39;3129:2;3121:6;3117:15;3150:1;3160:760;3174:6;3171:1;3168:13;3160:760;;;3239:22;;;3263:66;3235:95;3223:108;;3354:13;;3422:9;;3407:25;;3475:11;;;3469:18;3452:15;;;3445:43;3535:11;;;3529:18;3549;3525:43;3508:15;;;3501:68;3592:4;3639:11;;;3633:18;3616:15;;;3609:43;3675:4;3718:11;;;3712:18;3390:4;3750:15;;;3743:27;;;3712:18;3793:47;3824:15;;;3712:18;3793:47;:::i;:::-;3898:12;;;;3783:57;-1:-1:-1;;;3863:15:357;;;;3196:1;3189:9;3160:760;;;-1:-1:-1;3937:6:357;;2568:1381;-1:-1:-1;;;;;;;;2568:1381:357:o;4136:219::-;4285:2;4274:9;4267:21;4248:4;4305:44;4345:2;4334:9;4330:18;4322:6;4305:44;:::i;4360:814::-;4507:6;4515;4523;4531;4584:2;4572:9;4563:7;4559:23;4555:32;4552:52;;;4600:1;4597;4590:12;4552:52;4623:51;4664:9;4623:51;:::i;:::-;4613:61;;4721:2;4710:9;4706:18;4693:32;4683:42;;4776:2;4765:9;4761:18;4748:32;4799:18;4840:2;4832:6;4829:14;4826:34;;;4856:1;4853;4846:12;4826:34;4894:6;4883:9;4879:22;4869:32;;4939:7;4932:4;4928:2;4924:13;4920:27;4910:55;;4961:1;4958;4951:12;4910:55;5001:2;4988:16;5027:2;5019:6;5016:14;5013:34;;;5043:1;5040;5033:12;5013:34;5088:7;5083:2;5074:6;5070:2;5066:15;5062:24;5059:37;5056:57;;;5109:1;5106;5099:12;5056:57;4360:814;;;;-1:-1:-1;;5140:2:357;5132:11;;-1:-1:-1;;;4360:814:357:o;6000:180::-;6059:6;6112:2;6100:9;6091:7;6087:23;6083:32;6080:52;;;6128:1;6125;6118:12;6080:52;-1:-1:-1;6151:23:357;;6000:180;-1:-1:-1;6000:180:357:o;6684:261::-;6743:6;6796:2;6784:9;6775:7;6771:23;6767:32;6764:52;;;6812:1;6809;6802:12;6764:52;6851:9;6838:23;6870:45;6909:5;6870:45;:::i;6950:184::-;7002:77;6999:1;6992:88;7099:4;7096:1;7089:15;7123:4;7120:1;7113:15;7139:184;7191:77;7188:1;7181:88;7288:4;7285:1;7278:15;7312:4;7309:1;7302:15;7328:942;7407:6;7460:2;7448:9;7439:7;7435:23;7431:32;7428:52;;;7476:1;7473;7466:12;7428:52;7509:9;7503:16;7538:18;7579:2;7571:6;7568:14;7565:34;;;7595:1;7592;7585:12;7565:34;7633:6;7622:9;7618:22;7608:32;;7678:7;7671:4;7667:2;7663:13;7659:27;7649:55;;7700:1;7697;7690:12;7649:55;7729:2;7723:9;7751:2;7747;7744:10;7741:36;;;7757:18;;:::i;:::-;7891:2;7885:9;7953:4;7945:13;;7796:66;7941:22;;;7965:2;7937:31;7933:40;7921:53;;;7989:18;;;8009:22;;;7986:46;7983:72;;;8035:18;;:::i;:::-;8075:10;8071:2;8064:22;8110:2;8102:6;8095:18;8150:7;8145:2;8140;8136;8132:11;8128:20;8125:33;8122:53;;;8171:1;8168;8161:12;8122:53;8184:55;8236:2;8231;8223:6;8219:15;8214:2;8210;8206:11;8184:55;:::i;:::-;8258:6;7328:942;-1:-1:-1;;;;;;;7328:942:357:o;8275:212::-;8373:6;8426:2;8414:9;8405:7;8401:23;8397:32;8394:52;;;8442:1;8439;8432:12;8394:52;-1:-1:-1;8465:16:357;;8275:212;-1:-1:-1;8275:212:357:o;8492:279::-;8532:4;8560:1;8557;8554:8;8551:188;;;8595:77;8592:1;8585:88;8696:4;8693:1;8686:15;8724:4;8721:1;8714:15;8551:188;-1:-1:-1;8756:9:357;;8492:279::o;9005:585::-;9307:66;9298:6;9294:2;9290:15;9286:88;9281:3;9274:101;9405:6;9400:2;9395:3;9391:12;9384:28;9442:6;9437:2;9432:3;9428:12;9421:28;9493:6;9485;9480:2;9475:3;9471:12;9458:42;9256:3;9523:16;;9541:2;9519:25;9553:13;;;9519:25;9005:585;-1:-1:-1;;;;9005:585:357:o;9595:667::-;9878:10;9870:6;9866:23;9855:9;9848:42;9926:6;9921:2;9910:9;9906:18;9899:34;9969:2;9964;9953:9;9949:18;9942:30;10008:6;10003:2;9992:9;9988:18;9981:34;10066:6;10058;10052:3;10041:9;10037:19;10024:49;10123:1;10093:22;;;10117:3;10089:32;;;10082:43;;;;10177:2;10165:15;;;10182:66;10161:88;10146:104;10142:114;;9595:667;-1:-1:-1;;;9595:667:357:o","linkReferences":{}},"methodIdentifiers":{"create(uint32,bytes32,bytes)":"82ecf2f6","findLatestGames(uint32,uint256,uint256)":"254bd683","gameAtIndex(uint256)":"bb8aa1fc","gameCount()":"4d1975b4","gameImpls(uint32)":"1b685b9e","games(uint32,bytes32,bytes)":"5f0150cb","getGameUUID(uint32,bytes32,bytes)":"96cd9720","initBonds(uint32)":"6593dc6e","initialize(address)":"c4d66de8","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setImplementation(uint32,address)":"14f6b1a3","setInitBond(uint32,uint256)":"1e334240","transferOwnership(address)":"f2fde38b","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"Hash\",\"name\":\"uuid\",\"type\":\"bytes32\"}],\"name\":\"GameAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectBondAmount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType\",\"type\":\"uint32\"}],\"name\":\"NoImplementation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disputeProxy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"GameType\",\"name\":\"gameType\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"Claim\",\"name\":\"rootClaim\",\"type\":\"bytes32\"}],\"name\":\"DisputeGameCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"impl\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"GameType\",\"name\":\"gameType\",\"type\":\"uint32\"}],\"name\":\"ImplementationSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"GameType\",\"name\":\"gameType\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newBond\",\"type\":\"uint256\"}],\"name\":\"InitBondUpdated\",\"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\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint32\"},{\"internalType\":\"Claim\",\"name\":\"_rootClaim\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"contract IDisputeGame\",\"name\":\"proxy_\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"_start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_n\",\"type\":\"uint256\"}],\"name\":\"findLatestGames\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"GameId\",\"name\":\"metadata\",\"type\":\"bytes32\"},{\"internalType\":\"Timestamp\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"Claim\",\"name\":\"rootClaim\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct IDisputeGameFactory.GameSearchResult[]\",\"name\":\"games_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"gameAtIndex\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint32\"},{\"internalType\":\"Timestamp\",\"name\":\"timestamp_\",\"type\":\"uint64\"},{\"internalType\":\"contract IDisputeGame\",\"name\":\"proxy_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gameCount_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"gameImpls\",\"outputs\":[{\"internalType\":\"contract IDisputeGame\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint32\"},{\"internalType\":\"Claim\",\"name\":\"_rootClaim\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"games\",\"outputs\":[{\"internalType\":\"contract IDisputeGame\",\"name\":\"proxy_\",\"type\":\"address\"},{\"internalType\":\"Timestamp\",\"name\":\"timestamp_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint32\"},{\"internalType\":\"Claim\",\"name\":\"_rootClaim\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"getGameUUID\",\"outputs\":[{\"internalType\":\"Hash\",\"name\":\"uuid_\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"initBonds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint32\"},{\"internalType\":\"contract IDisputeGame\",\"name\":\"_impl\",\"type\":\"address\"}],\"name\":\"setImplementation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"_initBond\",\"type\":\"uint256\"}],\"name\":\"setInitBond\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"GameAlreadyExists(bytes32)\":[{\"params\":{\"uuid\":\"The UUID of the dispute game that already exists.\"}}],\"NoImplementation(uint32)\":[{\"params\":{\"gameType\":\"The unsupported game type.\"}}]},\"kind\":\"dev\",\"methods\":{\"create(uint32,bytes32,bytes)\":{\"params\":{\"_extraData\":\"Any extra data that should be provided to the created dispute game.\",\"_gameType\":\"The type of the DisputeGame - used to decide the proxy implementation.\",\"_rootClaim\":\"The root claim of the DisputeGame.\"},\"returns\":{\"proxy_\":\"The address of the created DisputeGame proxy.\"}},\"findLatestGames(uint32,uint256,uint256)\":{\"params\":{\"_gameType\":\"The type of game to find.\",\"_n\":\"The number of games to find.\",\"_start\":\"The index to start the reverse search from.\"}},\"gameAtIndex(uint256)\":{\"params\":{\"_index\":\"The index of the dispute game.\"},\"returns\":{\"gameType_\":\"The type of the DisputeGame - used to decide the proxy implementation.\",\"proxy_\":\"The clone of the `DisputeGame` created with the given parameters.         Returns `address(0)` if nonexistent.\",\"timestamp_\":\"The timestamp of the creation of the dispute game.\"}},\"gameCount()\":{\"returns\":{\"gameCount_\":\"The total number of dispute games created by this factory.\"}},\"games(uint32,bytes32,bytes)\":{\"details\":\"`++` equates to concatenation.\",\"params\":{\"_extraData\":\"Any extra data that should be provided to the created dispute game.\",\"_gameType\":\"The type of the DisputeGame - used to decide the proxy implementation\",\"_rootClaim\":\"The root claim of the DisputeGame.\"},\"returns\":{\"proxy_\":\"The clone of the `DisputeGame` created with the given parameters.         Returns `address(0)` if nonexistent.\",\"timestamp_\":\"The timestamp of the creation of the dispute game.\"}},\"getGameUUID(uint32,bytes32,bytes)\":{\"details\":\"Hashes the concatenation of `gameType . rootClaim . extraData`      without expanding memory.\",\"params\":{\"_extraData\":\"Any extra data that should be provided to the created dispute game.\",\"_gameType\":\"The type of the DisputeGame.\",\"_rootClaim\":\"The root claim of the DisputeGame.\"},\"returns\":{\"uuid_\":\"The unique identifier for the given dispute game parameters.\"}},\"initialize(address)\":{\"params\":{\"_owner\":\"The owner of the contract.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setImplementation(uint32,address)\":{\"details\":\"May only be called by the `owner`.\",\"params\":{\"_gameType\":\"The type of the DisputeGame.\",\"_impl\":\"The implementation contract for the given `GameType`.\"}},\"setInitBond(uint32,uint256)\":{\"details\":\"May only be called by the `owner`.\",\"params\":{\"_gameType\":\"The type of the DisputeGame.\",\"_initBond\":\"The bond (in wei) for initializing a game type.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"stateVariables\":{\"gameImpls\":{\"params\":{\"_gameType\":\"The type of the dispute game.\"},\"return\":\"The address of the implementation of the game type.         Will be cloned on creation of a new dispute game with the given `gameType`.\",\"returns\":{\"_0\":\"The address of the implementation of the game type.         Will be cloned on creation of a new dispute game with the given `gameType`.\"}},\"initBonds\":{\"params\":{\"_gameType\":\"The type of the dispute game.\"},\"return\":\"The required bond for initializing a dispute game of the given type.\",\"returns\":{\"_0\":\"The required bond for initializing a dispute game of the given type.\"}},\"version\":{\"custom:semver\":\"0.6.0\"}},\"title\":\"DisputeGameFactory\",\"version\":1},\"userdoc\":{\"errors\":{\"GameAlreadyExists(bytes32)\":[{\"notice\":\"Thrown when a dispute game that already exists is attempted to be created.\"}],\"IncorrectBondAmount()\":[{\"notice\":\"Thrown when a supplied bond is not equal to the required bond amount to cover the cost of the interaction.\"}],\"NoImplementation(uint32)\":[{\"notice\":\"Thrown when a dispute game is attempted to be created with an unsupported game type.\"}]},\"events\":{\"DisputeGameCreated(address,uint32,bytes32)\":{\"notice\":\"Emitted when a new dispute game is created\"},\"ImplementationSet(address,uint32)\":{\"notice\":\"Emitted when a new game implementation added to the factory\"},\"InitBondUpdated(uint32,uint256)\":{\"notice\":\"Emitted when a game type's initialization bond is updated\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Constructs a new DisputeGameFactory contract.\"},\"create(uint32,bytes32,bytes)\":{\"notice\":\"Creates a new DisputeGame proxy contract.\"},\"findLatestGames(uint32,uint256,uint256)\":{\"notice\":\"Finds the `_n` most recent `GameId`'s of type `_gameType` starting at `_start`. If there are less than         `_n` games of type `_gameType` starting at `_start`, then the returned array will be shorter than `_n`.\"},\"gameAtIndex(uint256)\":{\"notice\":\"`gameAtIndex` returns the dispute game contract address and its creation timestamp          at the given index. Each created dispute game increments the underlying index.\"},\"gameCount()\":{\"notice\":\"The total number of dispute games created by this factory.\"},\"gameImpls(uint32)\":{\"notice\":\"`gameImpls` is a mapping that maps `GameType`s to their respective         `IDisputeGame` implementations.\"},\"games(uint32,bytes32,bytes)\":{\"notice\":\"`games` queries an internal mapping that maps the hash of         `gameType ++ rootClaim ++ extraData` to the deployed `DisputeGame` clone.\"},\"getGameUUID(uint32,bytes32,bytes)\":{\"notice\":\"Returns a unique identifier for the given dispute game parameters.\"},\"initBonds(uint32)\":{\"notice\":\"Returns the required bonds for initializing a dispute game of the given type.\"},\"initialize(address)\":{\"notice\":\"Initializes the contract.\"},\"setImplementation(uint32,address)\":{\"notice\":\"Sets the implementation contract for a specific `GameType`.\"},\"setInitBond(uint32,uint256)\":{\"notice\":\"Sets the bond (in wei) for initializing a game type.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"A factory contract for creating `IDisputeGame` contracts. All created dispute games are stored in both a         mapping and an append only array. The timestamp of the creation time of the dispute game is packed tightly         into the storage slot with the address of the dispute game to make offchain discoverability of playable         dispute games easier.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/DisputeGameFactory.sol\":\"DisputeGameFactory\"},\"evmVersion\":\"london\",\"libraries\":{},\"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/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"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/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/solady/src/utils/LibClone.sol\":{\"keccak256\":\"0xfd4b40a4584e736d9d0b045fbc748023804c83819f5e018635a9f447834774a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://202fc57397118355d9d573c28d36ff45892e632a12b143f4bc5e7266bfb7737e\",\"dweb:/ipfs/QmZYD6Va3nNUC4B9NHZcyvFmK59i3WnEPPpsi8N355GivN\"]},\"src/dispute/DisputeGameFactory.sol\":{\"keccak256\":\"0xc7c6b0c2a051d4a14b3833243fa2e93e5e320bb106ef3979ce77098fb9d6629f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd5cbabb1b0b41f9faf3d2329e519936ea43a1e7da1df6a9be90d2513603b09f\",\"dweb:/ipfs/QmQM5FpgogJQnbmJjdQdoxxMzczx5PBiCNbiRUQiJqHyhM\"]},\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0xe2611453d5cc05f8aa30dc0e5e15ee5ae29fd3eb55a2c034424250baebf12f9b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://274e00fbcea3b8455bbaa042130bf1f7a5b2b769f28ad57afbf9fabfd74a757a\",\"dweb:/ipfs/QmRKQTfYdMjQYVbuZhdXts1d752eUq8RwrjqqwV5XRYLi6\"]},\"src/dispute/interfaces/IDisputeGameFactory.sol\":{\"keccak256\":\"0x204d89d38d4dc0db40fbf898d95e639ac5608810a5a5506a3d80d71177648bda\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71e5c0ff04f409f30ca4f8ebfae1592c6ca495e315b059f969d11812e6e84dbd\",\"dweb:/ipfs/QmaNKkhkJv7qHzX6bKB3LjpWBupfMPLhoATUGx1HRTLtXh\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xf7ceb26f0ac7067ff8a43f263451050eef6fba2029eafb83d3cbe35224d894a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bb403b0d707a8e2e3780a19185b918bfe907ca2d1b939ea74ae095a5cdf3b48\",\"dweb:/ipfs/QmYFzkmF8TRomp1cBEbTsKxiEnqLnX6SvSh4y3rVa84pBR\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x9b61b15f5edfac1e6528aec79c1be6ac712d5f6a62140db87ed749e41a46563f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24ef4ecee91638e278886888192b7d2b1811ab99f4e90a06817a4b2651720046\",\"dweb:/ipfs/QmdisoBv1mE9jDv6jvpcbvKhdmJZMMjQmATrEYfBQQrXtZ\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x869bec0d79d97f2d0a00b1e70bf1e6955a2be585521e0084602e54455c0a6937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a235c6349437cd2ade72909287404e2993c1c4bd356707299239c71fa3bf780e\",\"dweb:/ipfs/QmcFSh6PWJ5sNg1CeoRyF9EnV8APWDz1kYP98v6ooGxc71\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0xae3d053cf40b3e47669b89438524fec4eb571a78be296cc7e7ba23025b3bdf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a2b90604718ad29d19a8f21d45a5f8c6188320781fdb7102b3fccadae549961\",\"dweb:/ipfs/QmUBTXgRFG7PvoCBJsXmgi2sZPZFPQQZTptQ91LL7tC2xQ\"]},\"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":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"Hash","name":"uuid","type":"bytes32"}],"type":"error","name":"GameAlreadyExists"},{"inputs":[],"type":"error","name":"IncorrectBondAmount"},{"inputs":[{"internalType":"GameType","name":"gameType","type":"uint32"}],"type":"error","name":"NoImplementation"},{"inputs":[{"internalType":"address","name":"disputeProxy","type":"address","indexed":true},{"internalType":"GameType","name":"gameType","type":"uint32","indexed":true},{"internalType":"Claim","name":"rootClaim","type":"bytes32","indexed":true}],"type":"event","name":"DisputeGameCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"impl","type":"address","indexed":true},{"internalType":"GameType","name":"gameType","type":"uint32","indexed":true}],"type":"event","name":"ImplementationSet","anonymous":false},{"inputs":[{"internalType":"GameType","name":"gameType","type":"uint32","indexed":true},{"internalType":"uint256","name":"newBond","type":"uint256","indexed":true}],"type":"event","name":"InitBondUpdated","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"GameType","name":"_gameType","type":"uint32"},{"internalType":"Claim","name":"_rootClaim","type":"bytes32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"create","outputs":[{"internalType":"contract IDisputeGame","name":"proxy_","type":"address"}]},{"inputs":[{"internalType":"GameType","name":"_gameType","type":"uint32"},{"internalType":"uint256","name":"_start","type":"uint256"},{"internalType":"uint256","name":"_n","type":"uint256"}],"stateMutability":"view","type":"function","name":"findLatestGames","outputs":[{"internalType":"struct IDisputeGameFactory.GameSearchResult[]","name":"games_","type":"tuple[]","components":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"GameId","name":"metadata","type":"bytes32"},{"internalType":"Timestamp","name":"timestamp","type":"uint64"},{"internalType":"Claim","name":"rootClaim","type":"bytes32"},{"internalType":"bytes","name":"extraData","type":"bytes"}]}]},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"stateMutability":"view","type":"function","name":"gameAtIndex","outputs":[{"internalType":"GameType","name":"gameType_","type":"uint32"},{"internalType":"Timestamp","name":"timestamp_","type":"uint64"},{"internalType":"contract IDisputeGame","name":"proxy_","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gameCount","outputs":[{"internalType":"uint256","name":"gameCount_","type":"uint256"}]},{"inputs":[{"internalType":"GameType","name":"","type":"uint32"}],"stateMutability":"view","type":"function","name":"gameImpls","outputs":[{"internalType":"contract IDisputeGame","name":"","type":"address"}]},{"inputs":[{"internalType":"GameType","name":"_gameType","type":"uint32"},{"internalType":"Claim","name":"_rootClaim","type":"bytes32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"view","type":"function","name":"games","outputs":[{"internalType":"contract IDisputeGame","name":"proxy_","type":"address"},{"internalType":"Timestamp","name":"timestamp_","type":"uint64"}]},{"inputs":[{"internalType":"GameType","name":"_gameType","type":"uint32"},{"internalType":"Claim","name":"_rootClaim","type":"bytes32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"pure","type":"function","name":"getGameUUID","outputs":[{"internalType":"Hash","name":"uuid_","type":"bytes32"}]},{"inputs":[{"internalType":"GameType","name":"","type":"uint32"}],"stateMutability":"view","type":"function","name":"initBonds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"GameType","name":"_gameType","type":"uint32"},{"internalType":"contract IDisputeGame","name":"_impl","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setImplementation"},{"inputs":[{"internalType":"GameType","name":"_gameType","type":"uint32"},{"internalType":"uint256","name":"_initBond","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setInitBond"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"create(uint32,bytes32,bytes)":{"params":{"_extraData":"Any extra data that should be provided to the created dispute game.","_gameType":"The type of the DisputeGame - used to decide the proxy implementation.","_rootClaim":"The root claim of the DisputeGame."},"returns":{"proxy_":"The address of the created DisputeGame proxy."}},"findLatestGames(uint32,uint256,uint256)":{"params":{"_gameType":"The type of game to find.","_n":"The number of games to find.","_start":"The index to start the reverse search from."}},"gameAtIndex(uint256)":{"params":{"_index":"The index of the dispute game."},"returns":{"gameType_":"The type of the DisputeGame - used to decide the proxy implementation.","proxy_":"The clone of the `DisputeGame` created with the given parameters.         Returns `address(0)` if nonexistent.","timestamp_":"The timestamp of the creation of the dispute game."}},"gameCount()":{"returns":{"gameCount_":"The total number of dispute games created by this factory."}},"games(uint32,bytes32,bytes)":{"details":"`++` equates to concatenation.","params":{"_extraData":"Any extra data that should be provided to the created dispute game.","_gameType":"The type of the DisputeGame - used to decide the proxy implementation","_rootClaim":"The root claim of the DisputeGame."},"returns":{"proxy_":"The clone of the `DisputeGame` created with the given parameters.         Returns `address(0)` if nonexistent.","timestamp_":"The timestamp of the creation of the dispute game."}},"getGameUUID(uint32,bytes32,bytes)":{"details":"Hashes the concatenation of `gameType . rootClaim . extraData`      without expanding memory.","params":{"_extraData":"Any extra data that should be provided to the created dispute game.","_gameType":"The type of the DisputeGame.","_rootClaim":"The root claim of the DisputeGame."},"returns":{"uuid_":"The unique identifier for the given dispute game parameters."}},"initialize(address)":{"params":{"_owner":"The owner of the contract."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setImplementation(uint32,address)":{"details":"May only be called by the `owner`.","params":{"_gameType":"The type of the DisputeGame.","_impl":"The implementation contract for the given `GameType`."}},"setInitBond(uint32,uint256)":{"details":"May only be called by the `owner`.","params":{"_gameType":"The type of the DisputeGame.","_initBond":"The bond (in wei) for initializing a game type."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"Constructs a new DisputeGameFactory contract."},"create(uint32,bytes32,bytes)":{"notice":"Creates a new DisputeGame proxy contract."},"findLatestGames(uint32,uint256,uint256)":{"notice":"Finds the `_n` most recent `GameId`'s of type `_gameType` starting at `_start`. If there are less than         `_n` games of type `_gameType` starting at `_start`, then the returned array will be shorter than `_n`."},"gameAtIndex(uint256)":{"notice":"`gameAtIndex` returns the dispute game contract address and its creation timestamp          at the given index. Each created dispute game increments the underlying index."},"gameCount()":{"notice":"The total number of dispute games created by this factory."},"gameImpls(uint32)":{"notice":"`gameImpls` is a mapping that maps `GameType`s to their respective         `IDisputeGame` implementations."},"games(uint32,bytes32,bytes)":{"notice":"`games` queries an internal mapping that maps the hash of         `gameType ++ rootClaim ++ extraData` to the deployed `DisputeGame` clone."},"getGameUUID(uint32,bytes32,bytes)":{"notice":"Returns a unique identifier for the given dispute game parameters."},"initBonds(uint32)":{"notice":"Returns the required bonds for initializing a dispute game of the given type."},"initialize(address)":{"notice":"Initializes the contract."},"setImplementation(uint32,address)":{"notice":"Sets the implementation contract for a specific `GameType`."},"setInitBond(uint32,uint256)":{"notice":"Sets the bond (in wei) for initializing a game type."},"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/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/DisputeGameFactory.sol":"DisputeGameFactory"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"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/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/solady/src/utils/LibClone.sol":{"keccak256":"0xfd4b40a4584e736d9d0b045fbc748023804c83819f5e018635a9f447834774a4","urls":["bzz-raw://202fc57397118355d9d573c28d36ff45892e632a12b143f4bc5e7266bfb7737e","dweb:/ipfs/QmZYD6Va3nNUC4B9NHZcyvFmK59i3WnEPPpsi8N355GivN"],"license":"MIT"},"src/dispute/DisputeGameFactory.sol":{"keccak256":"0xc7c6b0c2a051d4a14b3833243fa2e93e5e320bb106ef3979ce77098fb9d6629f","urls":["bzz-raw://cd5cbabb1b0b41f9faf3d2329e519936ea43a1e7da1df6a9be90d2513603b09f","dweb:/ipfs/QmQM5FpgogJQnbmJjdQdoxxMzczx5PBiCNbiRUQiJqHyhM"],"license":"MIT"},"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0xe2611453d5cc05f8aa30dc0e5e15ee5ae29fd3eb55a2c034424250baebf12f9b","urls":["bzz-raw://274e00fbcea3b8455bbaa042130bf1f7a5b2b769f28ad57afbf9fabfd74a757a","dweb:/ipfs/QmRKQTfYdMjQYVbuZhdXts1d752eUq8RwrjqqwV5XRYLi6"],"license":"MIT"},"src/dispute/interfaces/IDisputeGameFactory.sol":{"keccak256":"0x204d89d38d4dc0db40fbf898d95e639ac5608810a5a5506a3d80d71177648bda","urls":["bzz-raw://71e5c0ff04f409f30ca4f8ebfae1592c6ca495e315b059f969d11812e6e84dbd","dweb:/ipfs/QmaNKkhkJv7qHzX6bKB3LjpWBupfMPLhoATUGx1HRTLtXh"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/lib/LibGameId.sol":{"keccak256":"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6","urls":["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0","dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"],"license":"MIT"},"src/dispute/lib/LibHashing.sol":{"keccak256":"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b","urls":["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920","dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0xf7ceb26f0ac7067ff8a43f263451050eef6fba2029eafb83d3cbe35224d894a6","urls":["bzz-raw://3bb403b0d707a8e2e3780a19185b918bfe907ca2d1b939ea74ae095a5cdf3b48","dweb:/ipfs/QmYFzkmF8TRomp1cBEbTsKxiEnqLnX6SvSh4y3rVa84pBR"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x9b61b15f5edfac1e6528aec79c1be6ac712d5f6a62140db87ed749e41a46563f","urls":["bzz-raw://24ef4ecee91638e278886888192b7d2b1811ab99f4e90a06817a4b2651720046","dweb:/ipfs/QmdisoBv1mE9jDv6jvpcbvKhdmJZMMjQmATrEYfBQQrXtZ"],"license":"MIT"},"src/libraries/DisputeErrors.sol":{"keccak256":"0x869bec0d79d97f2d0a00b1e70bf1e6955a2be585521e0084602e54455c0a6937","urls":["bzz-raw://a235c6349437cd2ade72909287404e2993c1c4bd356707299239c71fa3bf780e","dweb:/ipfs/QmcFSh6PWJ5sNg1CeoRyF9EnV8APWDz1kYP98v6ooGxc71"],"license":"MIT"},"src/libraries/DisputeTypes.sol":{"keccak256":"0xae3d053cf40b3e47669b89438524fec4eb571a78be296cc7e7ba23025b3bdf0c","urls":["bzz-raw://4a2b90604718ad29d19a8f21d45a5f8c6188320781fdb7102b3fccadae549961","dweb:/ipfs/QmUBTXgRFG7PvoCBJsXmgi2sZPZFPQQZTptQ91LL7tC2xQ"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":46970,"contract":"src/dispute/DisputeGameFactory.sol:DisputeGameFactory","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":46973,"contract":"src/dispute/DisputeGameFactory.sol:DisputeGameFactory","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":48501,"contract":"src/dispute/DisputeGameFactory.sol:DisputeGameFactory","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":46842,"contract":"src/dispute/DisputeGameFactory.sol:DisputeGameFactory","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":46962,"contract":"src/dispute/DisputeGameFactory.sol:DisputeGameFactory","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":97221,"contract":"src/dispute/DisputeGameFactory.sol:DisputeGameFactory","label":"gameImpls","offset":0,"slot":"101","type":"t_mapping(t_userDefinedValueType(GameType)103271,t_contract(IDisputeGame)100327)"},{"astId":97227,"contract":"src/dispute/DisputeGameFactory.sol:DisputeGameFactory","label":"initBonds","offset":0,"slot":"102","type":"t_mapping(t_userDefinedValueType(GameType)103271,t_uint256)"},{"astId":97234,"contract":"src/dispute/DisputeGameFactory.sol:DisputeGameFactory","label":"_disputeGames","offset":0,"slot":"103","type":"t_mapping(t_userDefinedValueType(Hash)103253,t_userDefinedValueType(GameId)103265)"},{"astId":97239,"contract":"src/dispute/DisputeGameFactory.sol:DisputeGameFactory","label":"_disputeGameList","offset":0,"slot":"104","type":"t_array(t_userDefinedValueType(GameId)103265)dyn_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_array(t_userDefinedValueType(GameId)103265)dyn_storage":{"encoding":"dynamic_array","label":"GameId[]","numberOfBytes":"32","base":"t_userDefinedValueType(GameId)103265"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(IDisputeGame)100327":{"encoding":"inplace","label":"contract IDisputeGame","numberOfBytes":"20"},"t_mapping(t_userDefinedValueType(GameType)103271,t_contract(IDisputeGame)100327)":{"encoding":"mapping","key":"t_userDefinedValueType(GameType)103271","label":"mapping(GameType => contract IDisputeGame)","numberOfBytes":"32","value":"t_contract(IDisputeGame)100327"},"t_mapping(t_userDefinedValueType(GameType)103271,t_uint256)":{"encoding":"mapping","key":"t_userDefinedValueType(GameType)103271","label":"mapping(GameType => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_userDefinedValueType(Hash)103253,t_userDefinedValueType(GameId)103265)":{"encoding":"mapping","key":"t_userDefinedValueType(Hash)103253","label":"mapping(Hash => GameId)","numberOfBytes":"32","value":"t_userDefinedValueType(GameId)103265"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"},"t_userDefinedValueType(GameId)103265":{"encoding":"inplace","label":"GameId","numberOfBytes":"32"},"t_userDefinedValueType(GameType)103271":{"encoding":"inplace","label":"GameType","numberOfBytes":"4"},"t_userDefinedValueType(Hash)103253":{"encoding":"inplace","label":"Hash","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"constructor":{"notice":"Constructs a new DisputeGameFactory contract."},"create(uint32,bytes32,bytes)":{"notice":"Creates a new DisputeGame proxy contract."},"findLatestGames(uint32,uint256,uint256)":{"notice":"Finds the `_n` most recent `GameId`'s of type `_gameType` starting at `_start`. If there are less than         `_n` games of type `_gameType` starting at `_start`, then the returned array will be shorter than `_n`."},"gameAtIndex(uint256)":{"notice":"`gameAtIndex` returns the dispute game contract address and its creation timestamp          at the given index. Each created dispute game increments the underlying index."},"gameCount()":{"notice":"The total number of dispute games created by this factory."},"gameImpls(uint32)":{"notice":"`gameImpls` is a mapping that maps `GameType`s to their respective         `IDisputeGame` implementations."},"games(uint32,bytes32,bytes)":{"notice":"`games` queries an internal mapping that maps the hash of         `gameType ++ rootClaim ++ extraData` to the deployed `DisputeGame` clone."},"getGameUUID(uint32,bytes32,bytes)":{"notice":"Returns a unique identifier for the given dispute game parameters."},"initBonds(uint32)":{"notice":"Returns the required bonds for initializing a dispute game of the given type."},"initialize(address)":{"notice":"Initializes the contract."},"setImplementation(uint32,address)":{"notice":"Sets the implementation contract for a specific `GameType`."},"setInitBond(uint32,uint256)":{"notice":"Sets the bond (in wei) for initializing a game type."},"version()":{"notice":"Semantic version."}},"events":{"DisputeGameCreated(address,uint32,bytes32)":{"notice":"Emitted when a new dispute game is created"},"ImplementationSet(address,uint32)":{"notice":"Emitted when a new game implementation added to the factory"},"InitBondUpdated(uint32,uint256)":{"notice":"Emitted when a game type's initialization bond is updated"}},"errors":{"GameAlreadyExists(bytes32)":[{"notice":"Thrown when a dispute game that already exists is attempted to be created."}],"IncorrectBondAmount()":[{"notice":"Thrown when a supplied bond is not equal to the required bond amount to cover the cost of the interaction."}],"NoImplementation(uint32)":[{"notice":"Thrown when a dispute game is attempted to be created with an unsupported game type."}]},"notice":"A factory contract for creating `IDisputeGame` contracts. All created dispute games are stored in both a         mapping and an append only array. The timestamp of the creation time of the dispute game is packed tightly         into the storage slot with the address of the dispute game to make offchain discoverability of playable         dispute games easier."},"devdoc":{"version":1,"kind":"dev","methods":{"create(uint32,bytes32,bytes)":{"params":{"_extraData":"Any extra data that should be provided to the created dispute game.","_gameType":"The type of the DisputeGame - used to decide the proxy implementation.","_rootClaim":"The root claim of the DisputeGame."},"returns":{"proxy_":"The address of the created DisputeGame proxy."}},"findLatestGames(uint32,uint256,uint256)":{"params":{"_gameType":"The type of game to find.","_n":"The number of games to find.","_start":"The index to start the reverse search from."}},"gameAtIndex(uint256)":{"params":{"_index":"The index of the dispute game."},"returns":{"gameType_":"The type of the DisputeGame - used to decide the proxy implementation.","proxy_":"The clone of the `DisputeGame` created with the given parameters.         Returns `address(0)` if nonexistent.","timestamp_":"The timestamp of the creation of the dispute game."}},"gameCount()":{"returns":{"gameCount_":"The total number of dispute games created by this factory."}},"games(uint32,bytes32,bytes)":{"details":"`++` equates to concatenation.","params":{"_extraData":"Any extra data that should be provided to the created dispute game.","_gameType":"The type of the DisputeGame - used to decide the proxy implementation","_rootClaim":"The root claim of the DisputeGame."},"returns":{"proxy_":"The clone of the `DisputeGame` created with the given parameters.         Returns `address(0)` if nonexistent.","timestamp_":"The timestamp of the creation of the dispute game."}},"getGameUUID(uint32,bytes32,bytes)":{"details":"Hashes the concatenation of `gameType . rootClaim . extraData`      without expanding memory.","params":{"_extraData":"Any extra data that should be provided to the created dispute game.","_gameType":"The type of the DisputeGame.","_rootClaim":"The root claim of the DisputeGame."},"returns":{"uuid_":"The unique identifier for the given dispute game parameters."}},"initialize(address)":{"params":{"_owner":"The owner of the contract."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setImplementation(uint32,address)":{"details":"May only be called by the `owner`.","params":{"_gameType":"The type of the DisputeGame.","_impl":"The implementation contract for the given `GameType`."}},"setInitBond(uint32,uint256)":{"details":"May only be called by the `owner`.","params":{"_gameType":"The type of the DisputeGame.","_initBond":"The bond (in wei) for initializing a game type."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"errors":{"GameAlreadyExists(bytes32)":[{"params":{"uuid":"The UUID of the dispute game that already exists."}}],"NoImplementation(uint32)":[{"params":{"gameType":"The unsupported game type."}}]},"title":"DisputeGameFactory"},"ast":{"absolutePath":"src/dispute/DisputeGameFactory.sol","id":97683,"exportedSymbols":{"AlreadyInitialized":[103120],"AnchorRootNotFound":[103192],"BadAuth":[103195],"BadExtraData":[103132],"BondAmount":[103259],"BondTransferFailed":[103129],"CannotDefendRootClaim":[103135],"Claim":[103255],"ClaimAboveSplit":[103177],"ClaimAlreadyExists":[103138],"ClaimAlreadyResolved":[103174],"ClaimHash":[103257],"Clock":[103267],"ClockNotExpired":[103150],"ClockTimeExceeded":[103147],"DisputeGameFactory":[97682],"DuplicateStep":[103189],"Duration":[103263],"GameAlreadyExists":[103111],"GameDepthExceeded":[103153],"GameId":[103265],"GameNotInProgress":[103144],"GameStatus":[103277],"GameType":[103271],"GameTypes":[103317],"Hash":[103253],"IDisputeGame":[100327],"IDisputeGameFactory":[100497],"ISemver":[109417],"IncorrectBondAmount":[103123],"InvalidClaim":[103141],"InvalidClockExtension":[103183],"InvalidLocalIdent":[103168],"InvalidParent":[103156],"InvalidPrestate":[103159],"InvalidSplitDepth":[103180],"L1HeadTooOld":[103165],"LibClaim":[101086],"LibClock":[101073],"LibClone":[62767],"LibDuration":[101099],"LibGameId":[100778],"LibGameType":[101151],"LibHash":[101112],"LibHashing":[100800],"LibPosition":[101018],"LibTimestamp":[101125],"LibVMStatus":[101138],"LocalPreimageKey":[103373],"MaxDepthTooLarge":[103186],"NoCreditToClaim":[103126],"NoImplementation":[103105],"OutOfOrderResolution":[103171],"OutputRoot":[103283],"OwnableUpgradeable":[46963],"Position":[103269],"Timestamp":[103261],"UnexpectedRootClaim":[103117],"VMStatus":[103273],"VMStatuses":[103351],"ValidStep":[103162]},"nodeType":"SourceUnit","src":"32:8414:163","nodes":[{"id":97186,"nodeType":"PragmaDirective","src":"32:23:163","nodes":[],"literals":["solidity","0.8",".15"]},{"id":97188,"nodeType":"ImportDirective","src":"57:54:163","nodes":[],"absolutePath":"lib/solady/src/utils/LibClone.sol","file":"@solady/utils/LibClone.sol","nameLocation":"-1:-1:-1","scope":97683,"sourceUnit":62768,"symbolAliases":[{"foreign":{"id":97187,"name":"LibClone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62767,"src":"66:8:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97190,"nodeType":"ImportDirective","src":"112:103:163","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":97683,"sourceUnit":46964,"symbolAliases":[{"foreign":{"id":97189,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46963,"src":"121:18:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97192,"nodeType":"ImportDirective","src":"216:52:163","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":97683,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":97191,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"225:7:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97194,"nodeType":"ImportDirective","src":"270:71:163","nodes":[],"absolutePath":"src/dispute/interfaces/IDisputeGame.sol","file":"src/dispute/interfaces/IDisputeGame.sol","nameLocation":"-1:-1:-1","scope":97683,"sourceUnit":100328,"symbolAliases":[{"foreign":{"id":97193,"name":"IDisputeGame","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100327,"src":"279:12:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97196,"nodeType":"ImportDirective","src":"342:85:163","nodes":[],"absolutePath":"src/dispute/interfaces/IDisputeGameFactory.sol","file":"src/dispute/interfaces/IDisputeGameFactory.sol","nameLocation":"-1:-1:-1","scope":97683,"sourceUnit":100498,"symbolAliases":[{"foreign":{"id":97195,"name":"IDisputeGameFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100497,"src":"351:19:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97198,"nodeType":"ImportDirective","src":"429:58:163","nodes":[],"absolutePath":"src/dispute/lib/LibGameId.sol","file":"src/dispute/lib/LibGameId.sol","nameLocation":"-1:-1:-1","scope":97683,"sourceUnit":100779,"symbolAliases":[{"foreign":{"id":97197,"name":"LibGameId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100778,"src":"438:9:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":97199,"nodeType":"ImportDirective","src":"489:40:163","nodes":[],"absolutePath":"src/libraries/DisputeTypes.sol","file":"src/libraries/DisputeTypes.sol","nameLocation":"-1:-1:-1","scope":97683,"sourceUnit":103374,"symbolAliases":[],"unitAlias":""},{"id":97200,"nodeType":"ImportDirective","src":"530:41:163","nodes":[],"absolutePath":"src/libraries/DisputeErrors.sol","file":"src/libraries/DisputeErrors.sol","nameLocation":"-1:-1:-1","scope":97683,"sourceUnit":103196,"symbolAliases":[],"unitAlias":""},{"id":97682,"nodeType":"ContractDefinition","src":"989:7456:163","nodes":[{"id":97210,"nodeType":"UsingForDirective","src":"1155:27:163","nodes":[],"global":false,"libraryName":{"id":97208,"name":"LibClone","nodeType":"IdentifierPath","referencedDeclaration":62767,"src":"1161:8:163"},"typeName":{"id":97209,"name":"address","nodeType":"ElementaryTypeName","src":"1174:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":97214,"nodeType":"VariableDeclaration","src":"1251:40:163","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":97211,"nodeType":"StructuredDocumentation","src":"1188:58:163","text":"@notice Semantic version.\n @custom:semver 0.6.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"1274:7:163","scope":97682,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":97212,"name":"string","nodeType":"ElementaryTypeName","src":"1251:6:163","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"302e362e30","id":97213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1284:7:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_98293d924c2515c22d1d357dd5a43b88356a9d20201dd01f3afa1023505a904d","typeString":"literal_string \"0.6.0\""},"value":"0.6.0"},"visibility":"public"},{"id":97221,"nodeType":"VariableDeclaration","src":"1338:50:163","nodes":[],"baseFunctions":[100423],"constant":false,"documentation":{"id":97215,"nodeType":"StructuredDocumentation","src":"1298:35:163","text":"@inheritdoc IDisputeGameFactory"},"functionSelector":"1b685b9e","mutability":"mutable","name":"gameImpls","nameLocation":"1379:9:163","scope":97682,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_GameType_$103271_$_t_contract$_IDisputeGame_$100327_$","typeString":"mapping(GameType => contract IDisputeGame)"},"typeName":{"id":97220,"keyType":{"id":97217,"nodeType":"UserDefinedTypeName","pathNode":{"id":97216,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"1346:8:163"},"referencedDeclaration":103271,"src":"1346:8:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"nodeType":"Mapping","src":"1338:33:163","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_GameType_$103271_$_t_contract$_IDisputeGame_$100327_$","typeString":"mapping(GameType => contract IDisputeGame)"},"valueType":{"id":97219,"nodeType":"UserDefinedTypeName","pathNode":{"id":97218,"name":"IDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":100327,"src":"1358:12:163"},"referencedDeclaration":100327,"src":"1358:12:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}}},"visibility":"public"},{"id":97227,"nodeType":"VariableDeclaration","src":"1435:45:163","nodes":[],"baseFunctions":[100432],"constant":false,"documentation":{"id":97222,"nodeType":"StructuredDocumentation","src":"1395:35:163","text":"@inheritdoc IDisputeGameFactory"},"functionSelector":"6593dc6e","mutability":"mutable","name":"initBonds","nameLocation":"1471:9:163","scope":97682,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_GameType_$103271_$_t_uint256_$","typeString":"mapping(GameType => uint256)"},"typeName":{"id":97226,"keyType":{"id":97224,"nodeType":"UserDefinedTypeName","pathNode":{"id":97223,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"1443:8:163"},"referencedDeclaration":103271,"src":"1443:8:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"nodeType":"Mapping","src":"1435:28:163","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_GameType_$103271_$_t_uint256_$","typeString":"mapping(GameType => uint256)"},"valueType":{"id":97225,"name":"uint256","nodeType":"ElementaryTypeName","src":"1455:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":97234,"nodeType":"VariableDeclaration","src":"1650:46:163","nodes":[],"constant":false,"documentation":{"id":97228,"nodeType":"StructuredDocumentation","src":"1487:113:163","text":"@notice Mapping of a hash of `gameType || rootClaim || extraData` to the deployed `IDisputeGame` clone (where"},"mutability":"mutable","name":"_disputeGames","nameLocation":"1683:13:163","scope":97682,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_Hash_$103253_$_t_userDefinedValueType$_GameId_$103265_$","typeString":"mapping(Hash => GameId)"},"typeName":{"id":97233,"keyType":{"id":97230,"nodeType":"UserDefinedTypeName","pathNode":{"id":97229,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":103253,"src":"1658:4:163"},"referencedDeclaration":103253,"src":"1658:4:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"nodeType":"Mapping","src":"1650:23:163","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_Hash_$103253_$_t_userDefinedValueType$_GameId_$103265_$","typeString":"mapping(Hash => GameId)"},"valueType":{"id":97232,"nodeType":"UserDefinedTypeName","pathNode":{"id":97231,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":103265,"src":"1666:6:163"},"referencedDeclaration":103265,"src":"1666:6:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}}},"visibility":"internal"},{"id":97239,"nodeType":"VariableDeclaration","src":"1862:34:163","nodes":[],"constant":false,"documentation":{"id":97235,"nodeType":"StructuredDocumentation","src":"1703:154:163","text":"@notice An append-only array of disputeGames that have been created. Used by offchain game solvers to\n         efficiently track dispute games."},"mutability":"mutable","name":"_disputeGameList","nameLocation":"1880:16:163","scope":97682,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_userDefinedValueType$_GameId_$103265_$dyn_storage","typeString":"GameId[]"},"typeName":{"baseType":{"id":97237,"nodeType":"UserDefinedTypeName","pathNode":{"id":97236,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":103265,"src":"1862:6:163"},"referencedDeclaration":103265,"src":"1862:6:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},"id":97238,"nodeType":"ArrayTypeName","src":"1862:8:163","typeDescriptions":{"typeIdentifier":"t_array$_t_userDefinedValueType$_GameId_$103265_$dyn_storage_ptr","typeString":"GameId[]"}},"visibility":"internal"},{"id":97253,"nodeType":"FunctionDefinition","src":"1965:74:163","nodes":[],"body":{"id":97252,"nodeType":"Block","src":"2000:39:163","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":97248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2029:1:163","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":97247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2021:7:163","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":97246,"name":"address","nodeType":"ElementaryTypeName","src":"2021:7:163","typeDescriptions":{}}},"id":97249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2021:10:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":97245,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97269,"src":"2010:10:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":97250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2010:22:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97251,"nodeType":"ExpressionStatement","src":"2010:22:163"}]},"documentation":{"id":97240,"nodeType":"StructuredDocumentation","src":"1903:57:163","text":"@notice Constructs a new DisputeGameFactory contract."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":97243,"kind":"baseConstructorSpecifier","modifierName":{"id":97242,"name":"OwnableUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":46963,"src":"1979:18:163"},"nodeType":"ModifierInvocation","src":"1979:20:163"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":97241,"nodeType":"ParameterList","parameters":[],"src":"1976:2:163"},"returnParameters":{"id":97244,"nodeType":"ParameterList","parameters":[],"src":"2000:0:163"},"scope":97682,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":97269,"nodeType":"FunctionDefinition","src":"2136:124:163","nodes":[],"body":{"id":97268,"nodeType":"Block","src":"2191:69:163","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":97261,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46858,"src":"2201:14:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":97262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2201:16:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97263,"nodeType":"ExpressionStatement","src":"2201:16:163"},{"expression":{"arguments":[{"id":97265,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97256,"src":"2246:6:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":97264,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46957,"src":"2227:18:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":97266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2227:26:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97267,"nodeType":"ExpressionStatement","src":"2227:26:163"}]},"documentation":{"id":97254,"nodeType":"StructuredDocumentation","src":"2045:86:163","text":"@notice Initializes the contract.\n @param _owner The owner of the contract."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":97259,"kind":"modifierInvocation","modifierName":{"id":97258,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":47034,"src":"2179:11:163"},"nodeType":"ModifierInvocation","src":"2179:11:163"}],"name":"initialize","nameLocation":"2145:10:163","parameters":{"id":97257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97256,"mutability":"mutable","name":"_owner","nameLocation":"2164:6:163","nodeType":"VariableDeclaration","scope":97269,"src":"2156:14:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":97255,"name":"address","nodeType":"ElementaryTypeName","src":"2156:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2155:16:163"},"returnParameters":{"id":97260,"nodeType":"ParameterList","parameters":[],"src":"2191:0:163"},"scope":97682,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":97281,"nodeType":"FunctionDefinition","src":"2306:117:163","nodes":[],"body":{"id":97280,"nodeType":"Block","src":"2370:53:163","nodes":[],"statements":[{"expression":{"id":97278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":97275,"name":"gameCount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97273,"src":"2380:10:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":97276,"name":"_disputeGameList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97239,"src":"2393:16:163","typeDescriptions":{"typeIdentifier":"t_array$_t_userDefinedValueType$_GameId_$103265_$dyn_storage","typeString":"GameId[] storage ref"}},"id":97277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2393:23:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2380:36:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":97279,"nodeType":"ExpressionStatement","src":"2380:36:163"}]},"baseFunctions":[100380],"documentation":{"id":97270,"nodeType":"StructuredDocumentation","src":"2266:35:163","text":"@inheritdoc IDisputeGameFactory"},"functionSelector":"4d1975b4","implemented":true,"kind":"function","modifiers":[],"name":"gameCount","nameLocation":"2315:9:163","parameters":{"id":97271,"nodeType":"ParameterList","parameters":[],"src":"2324:2:163"},"returnParameters":{"id":97274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97273,"mutability":"mutable","name":"gameCount_","nameLocation":"2358:10:163","nodeType":"VariableDeclaration","scope":97281,"src":"2350:18:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97272,"name":"uint256","nodeType":"ElementaryTypeName","src":"2350:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2349:20:163"},"scope":97682,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":97319,"nodeType":"FunctionDefinition","src":"2469:342:163","nodes":[],"body":{"id":97318,"nodeType":"Block","src":"2673:138:163","nodes":[],"statements":[{"assignments":[97301],"declarations":[{"constant":false,"id":97301,"mutability":"mutable","name":"uuid","nameLocation":"2688:4:163","nodeType":"VariableDeclaration","scope":97318,"src":"2683:9:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"},"typeName":{"id":97300,"nodeType":"UserDefinedTypeName","pathNode":{"id":97299,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":103253,"src":"2683:4:163"},"referencedDeclaration":103253,"src":"2683:4:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"visibility":"internal"}],"id":97307,"initialValue":{"arguments":[{"id":97303,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97285,"src":"2707:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},{"id":97304,"name":"_rootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97288,"src":"2718:10:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":97305,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97290,"src":"2730:10:163","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":97302,"name":"getGameUUID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97522,"src":"2695:11:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Claim_$103255_$_t_bytes_calldata_ptr_$returns$_t_userDefinedValueType$_Hash_$103253_$","typeString":"function (GameType,Claim,bytes calldata) pure returns (Hash)"}},"id":97306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2695:46:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"nodeType":"VariableDeclarationStatement","src":"2683:58:163"},{"expression":{"id":97316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[null,{"id":97308,"name":"timestamp_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97297,"src":"2754:10:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},{"id":97309,"name":"proxy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97294,"src":"2766:6:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}}],"id":97310,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2751:22:163","typeDescriptions":{"typeIdentifier":"t_tuple$__$_t_userDefinedValueType$_Timestamp_$103261_$_t_contract$_IDisputeGame_$100327_$","typeString":"tuple(,Timestamp,contract IDisputeGame)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":97311,"name":"_disputeGames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97234,"src":"2776:13:163","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_Hash_$103253_$_t_userDefinedValueType$_GameId_$103265_$","typeString":"mapping(Hash => GameId)"}},"id":97313,"indexExpression":{"id":97312,"name":"uuid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97301,"src":"2790:4:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2776:19:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},"id":97314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unpack","nodeType":"MemberAccess","referencedDeclaration":100777,"src":"2776:26:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_GameId_$103265_$returns$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Timestamp_$103261_$_t_contract$_IDisputeGame_$100327_$bound_to$_t_userDefinedValueType$_GameId_$103265_$","typeString":"function (GameId) pure returns (GameType,Timestamp,contract IDisputeGame)"}},"id":97315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2776:28:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Timestamp_$103261_$_t_contract$_IDisputeGame_$100327_$","typeString":"tuple(GameType,Timestamp,contract IDisputeGame)"}},"src":"2751:53:163","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97317,"nodeType":"ExpressionStatement","src":"2751:53:163"}]},"baseFunctions":[100398],"documentation":{"id":97282,"nodeType":"StructuredDocumentation","src":"2429:35:163","text":"@inheritdoc IDisputeGameFactory"},"functionSelector":"5f0150cb","implemented":true,"kind":"function","modifiers":[],"name":"games","nameLocation":"2478:5:163","parameters":{"id":97291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97285,"mutability":"mutable","name":"_gameType","nameLocation":"2502:9:163","nodeType":"VariableDeclaration","scope":97319,"src":"2493:18:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":97284,"nodeType":"UserDefinedTypeName","pathNode":{"id":97283,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"2493:8:163"},"referencedDeclaration":103271,"src":"2493:8:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":97288,"mutability":"mutable","name":"_rootClaim","nameLocation":"2527:10:163","nodeType":"VariableDeclaration","scope":97319,"src":"2521:16:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":97287,"nodeType":"UserDefinedTypeName","pathNode":{"id":97286,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"2521:5:163"},"referencedDeclaration":103255,"src":"2521:5:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":97290,"mutability":"mutable","name":"_extraData","nameLocation":"2562:10:163","nodeType":"VariableDeclaration","scope":97319,"src":"2547:25:163","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":97289,"name":"bytes","nodeType":"ElementaryTypeName","src":"2547:5:163","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2483:95:163"},"returnParameters":{"id":97298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97294,"mutability":"mutable","name":"proxy_","nameLocation":"2639:6:163","nodeType":"VariableDeclaration","scope":97319,"src":"2626:19:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"},"typeName":{"id":97293,"nodeType":"UserDefinedTypeName","pathNode":{"id":97292,"name":"IDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":100327,"src":"2626:12:163"},"referencedDeclaration":100327,"src":"2626:12:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"visibility":"internal"},{"constant":false,"id":97297,"mutability":"mutable","name":"timestamp_","nameLocation":"2657:10:163","nodeType":"VariableDeclaration","scope":97319,"src":"2647:20:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"},"typeName":{"id":97296,"nodeType":"UserDefinedTypeName","pathNode":{"id":97295,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":103261,"src":"2647:9:163"},"referencedDeclaration":103261,"src":"2647:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},"visibility":"internal"}],"src":"2625:43:163"},"scope":97682,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":97346,"nodeType":"FunctionDefinition","src":"2857:235:163","nodes":[],"body":{"id":97345,"nodeType":"Block","src":"3008:84:163","nodes":[],"statements":[{"expression":{"id":97343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":97334,"name":"gameType_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97326,"src":"3019:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},{"id":97335,"name":"timestamp_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97329,"src":"3030:10:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},{"id":97336,"name":"proxy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97332,"src":"3042:6:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}}],"id":97337,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"3018:31:163","typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Timestamp_$103261_$_t_contract$_IDisputeGame_$100327_$","typeString":"tuple(GameType,Timestamp,contract IDisputeGame)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":97338,"name":"_disputeGameList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97239,"src":"3052:16:163","typeDescriptions":{"typeIdentifier":"t_array$_t_userDefinedValueType$_GameId_$103265_$dyn_storage","typeString":"GameId[] storage ref"}},"id":97340,"indexExpression":{"id":97339,"name":"_index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97322,"src":"3069:6:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3052:24:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},"id":97341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unpack","nodeType":"MemberAccess","referencedDeclaration":100777,"src":"3052:31:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_GameId_$103265_$returns$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Timestamp_$103261_$_t_contract$_IDisputeGame_$100327_$bound_to$_t_userDefinedValueType$_GameId_$103265_$","typeString":"function (GameId) pure returns (GameType,Timestamp,contract IDisputeGame)"}},"id":97342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3052:33:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Timestamp_$103261_$_t_contract$_IDisputeGame_$100327_$","typeString":"tuple(GameType,Timestamp,contract IDisputeGame)"}},"src":"3018:67:163","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97344,"nodeType":"ExpressionStatement","src":"3018:67:163"}]},"baseFunctions":[100413],"documentation":{"id":97320,"nodeType":"StructuredDocumentation","src":"2817:35:163","text":"@inheritdoc IDisputeGameFactory"},"functionSelector":"bb8aa1fc","implemented":true,"kind":"function","modifiers":[],"name":"gameAtIndex","nameLocation":"2866:11:163","parameters":{"id":97323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97322,"mutability":"mutable","name":"_index","nameLocation":"2886:6:163","nodeType":"VariableDeclaration","scope":97346,"src":"2878:14:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97321,"name":"uint256","nodeType":"ElementaryTypeName","src":"2878:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2877:16:163"},"returnParameters":{"id":97333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97326,"mutability":"mutable","name":"gameType_","nameLocation":"2950:9:163","nodeType":"VariableDeclaration","scope":97346,"src":"2941:18:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":97325,"nodeType":"UserDefinedTypeName","pathNode":{"id":97324,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"2941:8:163"},"referencedDeclaration":103271,"src":"2941:8:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":97329,"mutability":"mutable","name":"timestamp_","nameLocation":"2971:10:163","nodeType":"VariableDeclaration","scope":97346,"src":"2961:20:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"},"typeName":{"id":97328,"nodeType":"UserDefinedTypeName","pathNode":{"id":97327,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":103261,"src":"2961:9:163"},"referencedDeclaration":103261,"src":"2961:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},"visibility":"internal"},{"constant":false,"id":97332,"mutability":"mutable","name":"proxy_","nameLocation":"2996:6:163","nodeType":"VariableDeclaration","scope":97346,"src":"2983:19:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"},"typeName":{"id":97331,"nodeType":"UserDefinedTypeName","pathNode":{"id":97330,"name":"IDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":100327,"src":"2983:12:163"},"referencedDeclaration":100327,"src":"2983:12:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"visibility":"internal"}],"src":"2940:63:163"},"scope":97682,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":97492,"nodeType":"FunctionDefinition","src":"3138:2553:163","nodes":[],"body":{"id":97491,"nodeType":"Block","src":"3324:2367:163","nodes":[],"statements":[{"assignments":[97363],"declarations":[{"constant":false,"id":97363,"mutability":"mutable","name":"impl","nameLocation":"3417:4:163","nodeType":"VariableDeclaration","scope":97491,"src":"3404:17:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"},"typeName":{"id":97362,"nodeType":"UserDefinedTypeName","pathNode":{"id":97361,"name":"IDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":100327,"src":"3404:12:163"},"referencedDeclaration":100327,"src":"3404:12:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"visibility":"internal"}],"id":97367,"initialValue":{"baseExpression":{"id":97364,"name":"gameImpls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97221,"src":"3424:9:163","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_GameType_$103271_$_t_contract$_IDisputeGame_$100327_$","typeString":"mapping(GameType => contract IDisputeGame)"}},"id":97366,"indexExpression":{"id":97365,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97350,"src":"3434:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3424:20:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"nodeType":"VariableDeclarationStatement","src":"3404:40:163"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":97376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":97370,"name":"impl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97363,"src":"3551:4:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}],"id":97369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3543:7:163","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":97368,"name":"address","nodeType":"ElementaryTypeName","src":"3543:7:163","typeDescriptions":{}}},"id":97371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3543:13:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":97374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3568:1:163","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":97373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3560:7:163","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":97372,"name":"address","nodeType":"ElementaryTypeName","src":"3560:7:163","typeDescriptions":{}}},"id":97375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3560:10:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3543:27:163","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":97381,"nodeType":"IfStatement","src":"3539:67:163","trueBody":{"errorCall":{"arguments":[{"id":97378,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97350,"src":"3596:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}],"id":97377,"name":"NoImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103105,"src":"3579:16:163","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_userDefinedValueType$_GameType_$103271_$returns$__$","typeString":"function (GameType) pure"}},"id":97379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3579:27:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97380,"nodeType":"RevertStatement","src":"3572:34:163"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":97387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":97382,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3688:3:163","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":97383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"3688:9:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"baseExpression":{"id":97384,"name":"initBonds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97227,"src":"3701:9:163","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_GameType_$103271_$_t_uint256_$","typeString":"mapping(GameType => uint256)"}},"id":97386,"indexExpression":{"id":97385,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97350,"src":"3711:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3701:20:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3688:33:163","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":97391,"nodeType":"IfStatement","src":"3684:67:163","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":97388,"name":"IncorrectBondAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103123,"src":"3730:19:163","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":97389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3730:21:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97390,"nodeType":"RevertStatement","src":"3723:28:163"}},{"assignments":[97393],"declarations":[{"constant":false,"id":97393,"mutability":"mutable","name":"parentHash","nameLocation":"3815:10:163","nodeType":"VariableDeclaration","scope":97491,"src":"3807:18:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":97392,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3807:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":97400,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":97398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":97395,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3838:5:163","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":97396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"3838:12:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":97397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3853:1:163","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3838:16:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":97394,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"3828:9:163","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":97399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3828:27:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3807:48:163"},{"expression":{"id":97418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":97401,"name":"proxy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97359,"src":"4868:6:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":97410,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4927:3:163","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":97411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4927:10:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97412,"name":"_rootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97353,"src":"4939:10:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":97413,"name":"parentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97393,"src":"4951:10:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":97414,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97355,"src":"4963:10:163","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":97408,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4910:3:163","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":97409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"4910:16:163","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":97415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4910:64:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":97405,"name":"impl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97363,"src":"4898:4:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}],"id":97404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4890:7:163","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":97403,"name":"address","nodeType":"ElementaryTypeName","src":"4890:7:163","typeDescriptions":{}}},"id":97406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4890:13:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":97407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"clone","nodeType":"MemberAccess","referencedDeclaration":62515,"src":"4890:19:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_address_$bound_to$_t_address_$","typeString":"function (address,bytes memory) returns (address)"}},"id":97416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4890:85:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":97402,"name":"IDisputeGame","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100327,"src":"4877:12:163","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDisputeGame_$100327_$","typeString":"type(contract IDisputeGame)"}},"id":97417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4877:99:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"src":"4868:108:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"id":97419,"nodeType":"ExpressionStatement","src":"4868:108:163"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":97420,"name":"proxy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97359,"src":"4986:6:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"id":97422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":100615,"src":"4986:17:163","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":97425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":97423,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5012:3:163","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":97424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"5012:9:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"4986:37:163","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":97426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4986:39:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97427,"nodeType":"ExpressionStatement","src":"4986:39:163"},{"assignments":[97430],"declarations":[{"constant":false,"id":97430,"mutability":"mutable","name":"uuid","nameLocation":"5104:4:163","nodeType":"VariableDeclaration","scope":97491,"src":"5099:9:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"},"typeName":{"id":97429,"nodeType":"UserDefinedTypeName","pathNode":{"id":97428,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":103253,"src":"5099:4:163"},"referencedDeclaration":103253,"src":"5099:4:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"visibility":"internal"}],"id":97436,"initialValue":{"arguments":[{"id":97432,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97350,"src":"5123:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},{"id":97433,"name":"_rootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97353,"src":"5134:10:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":97434,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97355,"src":"5146:10:163","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":97431,"name":"getGameUUID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97522,"src":"5111:11:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Claim_$103255_$_t_bytes_calldata_ptr_$returns$_t_userDefinedValueType$_Hash_$103253_$","typeString":"function (GameType,Claim,bytes calldata) pure returns (Hash)"}},"id":97435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5111:46:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"nodeType":"VariableDeclarationStatement","src":"5099:58:163"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":97447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":97439,"name":"_disputeGames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97234,"src":"5258:13:163","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_Hash_$103253_$_t_userDefinedValueType$_GameId_$103265_$","typeString":"mapping(Hash => GameId)"}},"id":97441,"indexExpression":{"id":97440,"name":"uuid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97430,"src":"5272:4:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5258:19:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}],"expression":{"id":97437,"name":"GameId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103265,"src":"5244:6:163","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_GameId_$103265_$","typeString":"type(GameId)"}},"id":97438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"unwrap","nodeType":"MemberAccess","src":"5244:13:163","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_GameId_$103265_$returns$_t_bytes32_$","typeString":"function (GameId) pure returns (bytes32)"}},"id":97442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5244:34:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":97445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5290:1:163","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":97444,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5282:7:163","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":97443,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5282:7:163","typeDescriptions":{}}},"id":97446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5282:10:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5244:48:163","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":97452,"nodeType":"IfStatement","src":"5240:84:163","trueBody":{"errorCall":{"arguments":[{"id":97449,"name":"uuid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97430,"src":"5319:4:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}],"id":97448,"name":"GameAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103111,"src":"5301:17:163","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_userDefinedValueType$_Hash_$103253_$returns$__$","typeString":"function (Hash) pure"}},"id":97450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5301:23:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97451,"nodeType":"RevertStatement","src":"5294:30:163"}},{"assignments":[97455],"declarations":[{"constant":false,"id":97455,"mutability":"mutable","name":"id","nameLocation":"5371:2:163","nodeType":"VariableDeclaration","scope":97491,"src":"5364:9:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"},"typeName":{"id":97454,"nodeType":"UserDefinedTypeName","pathNode":{"id":97453,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":103265,"src":"5364:6:163"},"referencedDeclaration":103265,"src":"5364:6:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},"visibility":"internal"}],"id":97469,"initialValue":{"arguments":[{"id":97458,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97350,"src":"5391:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},{"arguments":[{"arguments":[{"expression":{"id":97463,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5424:5:163","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":97464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"5424:15:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":97462,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5417:6:163","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":97461,"name":"uint64","nodeType":"ElementaryTypeName","src":"5417:6:163","typeDescriptions":{}}},"id":97465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5417:23:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":97459,"name":"Timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103261,"src":"5402:9:163","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Timestamp_$103261_$","typeString":"type(Timestamp)"}},"id":97460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"5402:14:163","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_Timestamp_$103261_$","typeString":"function (uint64) pure returns (Timestamp)"}},"id":97466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5402:39:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},{"id":97467,"name":"proxy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97359,"src":"5443:6:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"},{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}],"expression":{"id":97456,"name":"LibGameId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100778,"src":"5376:9:163","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGameId_$100778_$","typeString":"type(library LibGameId)"}},"id":97457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pack","nodeType":"MemberAccess","referencedDeclaration":100759,"src":"5376:14:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Timestamp_$103261_$_t_contract$_IDisputeGame_$100327_$returns$_t_userDefinedValueType$_GameId_$103265_$","typeString":"function (GameType,Timestamp,contract IDisputeGame) pure returns (GameId)"}},"id":97468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5376:74:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},"nodeType":"VariableDeclarationStatement","src":"5364:86:163"},{"expression":{"id":97474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":97470,"name":"_disputeGames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97234,"src":"5552:13:163","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_Hash_$103253_$_t_userDefinedValueType$_GameId_$103265_$","typeString":"mapping(Hash => GameId)"}},"id":97472,"indexExpression":{"id":97471,"name":"uuid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97430,"src":"5566:4:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5552:19:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":97473,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97455,"src":"5574:2:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},"src":"5552:24:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},"id":97475,"nodeType":"ExpressionStatement","src":"5552:24:163"},{"expression":{"arguments":[{"id":97479,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97455,"src":"5608:2:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}],"expression":{"id":97476,"name":"_disputeGameList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97239,"src":"5586:16:163","typeDescriptions":{"typeIdentifier":"t_array$_t_userDefinedValueType$_GameId_$103265_$dyn_storage","typeString":"GameId[] storage ref"}},"id":97478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"5586:21:163","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_userDefinedValueType$_GameId_$103265_$dyn_storage_ptr_$_t_userDefinedValueType$_GameId_$103265_$returns$__$bound_to$_t_array$_t_userDefinedValueType$_GameId_$103265_$dyn_storage_ptr_$","typeString":"function (GameId[] storage pointer,GameId)"}},"id":97480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5586:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97481,"nodeType":"ExpressionStatement","src":"5586:25:163"},{"eventCall":{"arguments":[{"arguments":[{"id":97485,"name":"proxy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97359,"src":"5653:6:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}],"id":97484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5645:7:163","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":97483,"name":"address","nodeType":"ElementaryTypeName","src":"5645:7:163","typeDescriptions":{}}},"id":97486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5645:15:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97487,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97350,"src":"5662:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},{"id":97488,"name":"_rootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97353,"src":"5673:10:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}],"id":97482,"name":"DisputeGameCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100344,"src":"5626:18:163","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Claim_$103255_$returns$__$","typeString":"function (address,GameType,Claim)"}},"id":97489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5626:58:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97490,"nodeType":"EmitStatement","src":"5621:63:163"}]},"baseFunctions":[100447],"documentation":{"id":97347,"nodeType":"StructuredDocumentation","src":"3098:35:163","text":"@inheritdoc IDisputeGameFactory"},"functionSelector":"82ecf2f6","implemented":true,"kind":"function","modifiers":[],"name":"create","nameLocation":"3147:6:163","parameters":{"id":97356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97350,"mutability":"mutable","name":"_gameType","nameLocation":"3172:9:163","nodeType":"VariableDeclaration","scope":97492,"src":"3163:18:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":97349,"nodeType":"UserDefinedTypeName","pathNode":{"id":97348,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"3163:8:163"},"referencedDeclaration":103271,"src":"3163:8:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":97353,"mutability":"mutable","name":"_rootClaim","nameLocation":"3197:10:163","nodeType":"VariableDeclaration","scope":97492,"src":"3191:16:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":97352,"nodeType":"UserDefinedTypeName","pathNode":{"id":97351,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"3191:5:163"},"referencedDeclaration":103255,"src":"3191:5:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":97355,"mutability":"mutable","name":"_extraData","nameLocation":"3232:10:163","nodeType":"VariableDeclaration","scope":97492,"src":"3217:25:163","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":97354,"name":"bytes","nodeType":"ElementaryTypeName","src":"3217:5:163","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3153:95:163"},"returnParameters":{"id":97360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97359,"mutability":"mutable","name":"proxy_","nameLocation":"3312:6:163","nodeType":"VariableDeclaration","scope":97492,"src":"3299:19:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"},"typeName":{"id":97358,"nodeType":"UserDefinedTypeName","pathNode":{"id":97357,"name":"IDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":100327,"src":"3299:12:163"},"referencedDeclaration":100327,"src":"3299:12:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"visibility":"internal"}],"src":"3298:21:163"},"scope":97682,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":97522,"nodeType":"FunctionDefinition","src":"5737:269:163","nodes":[],"body":{"id":97521,"nodeType":"Block","src":"5914:92:163","nodes":[],"statements":[{"expression":{"id":97519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":97507,"name":"uuid_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97505,"src":"5924:5:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":97513,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97496,"src":"5963:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},{"id":97514,"name":"_rootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97499,"src":"5974:10:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":97515,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97501,"src":"5986:10:163","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":97511,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5952:3:163","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":97512,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"5952:10:163","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":97516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5952:45:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":97510,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5942:9:163","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":97517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5942:56:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":97508,"name":"Hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103253,"src":"5932:4:163","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Hash_$103253_$","typeString":"type(Hash)"}},"id":97509,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"5932:9:163","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Hash_$103253_$","typeString":"function (bytes32) pure returns (Hash)"}},"id":97518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5932:67:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"src":"5924:75:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"id":97520,"nodeType":"ExpressionStatement","src":"5924:75:163"}]},"baseFunctions":[100481],"documentation":{"id":97493,"nodeType":"StructuredDocumentation","src":"5697:35:163","text":"@inheritdoc IDisputeGameFactory"},"functionSelector":"96cd9720","implemented":true,"kind":"function","modifiers":[],"name":"getGameUUID","nameLocation":"5746:11:163","parameters":{"id":97502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97496,"mutability":"mutable","name":"_gameType","nameLocation":"5776:9:163","nodeType":"VariableDeclaration","scope":97522,"src":"5767:18:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":97495,"nodeType":"UserDefinedTypeName","pathNode":{"id":97494,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"5767:8:163"},"referencedDeclaration":103271,"src":"5767:8:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":97499,"mutability":"mutable","name":"_rootClaim","nameLocation":"5801:10:163","nodeType":"VariableDeclaration","scope":97522,"src":"5795:16:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":97498,"nodeType":"UserDefinedTypeName","pathNode":{"id":97497,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"5795:5:163"},"referencedDeclaration":103255,"src":"5795:5:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":97501,"mutability":"mutable","name":"_extraData","nameLocation":"5836:10:163","nodeType":"VariableDeclaration","scope":97522,"src":"5821:25:163","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":97500,"name":"bytes","nodeType":"ElementaryTypeName","src":"5821:5:163","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5757:95:163"},"returnParameters":{"id":97506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97505,"mutability":"mutable","name":"uuid_","nameLocation":"5903:5:163","nodeType":"VariableDeclaration","scope":97522,"src":"5898:10:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"},"typeName":{"id":97504,"nodeType":"UserDefinedTypeName","pathNode":{"id":97503,"name":"Hash","nodeType":"IdentifierPath","referencedDeclaration":103253,"src":"5898:4:163"},"referencedDeclaration":103253,"src":"5898:4:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Hash_$103253","typeString":"Hash"}},"visibility":"internal"}],"src":"5897:12:163"},"scope":97682,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":97631,"nodeType":"FunctionDefinition","src":"6052:1929:163","nodes":[],"body":{"id":97630,"nodeType":"Block","src":"6240:1741:163","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":97544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":97540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":97537,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97528,"src":"6374:6:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":97538,"name":"_disputeGameList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97239,"src":"6384:16:163","typeDescriptions":{"typeIdentifier":"t_array$_t_userDefinedValueType$_GameId_$103265_$dyn_storage","typeString":"GameId[] storage ref"}},"id":97539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6384:23:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6374:33:163","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":97543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":97541,"name":"_n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97530,"src":"6411:2:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":97542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6417:1:163","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6411:7:163","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6374:44:163","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":97547,"nodeType":"IfStatement","src":"6370:63:163","trueBody":{"expression":{"id":97545,"name":"games_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97535,"src":"6427:6:163","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GameSearchResult_$100374_memory_ptr_$dyn_memory_ptr","typeString":"struct IDisputeGameFactory.GameSearchResult memory[] memory"}},"functionReturnParameters":97536,"id":97546,"nodeType":"Return","src":"6420:13:163"}},{"AST":{"nodeType":"YulBlock","src":"6660:109:163","statements":[{"nodeType":"YulAssignment","src":"6674:21:163","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6690:4:163","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6684:5:163"},"nodeType":"YulFunctionCall","src":"6684:11:163"},"variableNames":[{"name":"games_","nodeType":"YulIdentifier","src":"6674:6:163"}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6715:4:163","type":"","value":"0x40"},{"arguments":[{"name":"games_","nodeType":"YulIdentifier","src":"6725:6:163"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6737:4:163","type":"","value":"0x20"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6747:4:163","type":"","value":"0x05"},{"name":"_n","nodeType":"YulIdentifier","src":"6753:2:163"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6743:3:163"},"nodeType":"YulFunctionCall","src":"6743:13:163"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6733:3:163"},"nodeType":"YulFunctionCall","src":"6733:24:163"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6721:3:163"},"nodeType":"YulFunctionCall","src":"6721:37:163"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6708:6:163"},"nodeType":"YulFunctionCall","src":"6708:51:163"},"nodeType":"YulExpressionStatement","src":"6708:51:163"}]},"evmVersion":"london","externalReferences":[{"declaration":97530,"isOffset":false,"isSlot":false,"src":"6753:2:163","valueSize":1},{"declaration":97535,"isOffset":false,"isSlot":false,"src":"6674:6:163","valueSize":1},{"declaration":97535,"isOffset":false,"isSlot":false,"src":"6725:6:163","valueSize":1}],"id":97548,"nodeType":"InlineAssembly","src":"6651:118:163"},{"body":{"id":97628,"nodeType":"Block","src":"6923:1052:163","statements":[{"assignments":[97562],"declarations":[{"constant":false,"id":97562,"mutability":"mutable","name":"id","nameLocation":"6944:2:163","nodeType":"VariableDeclaration","scope":97628,"src":"6937:9:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"},"typeName":{"id":97561,"nodeType":"UserDefinedTypeName","pathNode":{"id":97560,"name":"GameId","nodeType":"IdentifierPath","referencedDeclaration":103265,"src":"6937:6:163"},"referencedDeclaration":103265,"src":"6937:6:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},"visibility":"internal"}],"id":97566,"initialValue":{"baseExpression":{"id":97563,"name":"_disputeGameList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97239,"src":"6949:16:163","typeDescriptions":{"typeIdentifier":"t_array$_t_userDefinedValueType$_GameId_$103265_$dyn_storage","typeString":"GameId[] storage ref"}},"id":97565,"indexExpression":{"id":97564,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97550,"src":"6966:1:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6949:19:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},"nodeType":"VariableDeclarationStatement","src":"6937:31:163"},{"assignments":[97569,97572,97575],"declarations":[{"constant":false,"id":97569,"mutability":"mutable","name":"gameType","nameLocation":"6992:8:163","nodeType":"VariableDeclaration","scope":97628,"src":"6983:17:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":97568,"nodeType":"UserDefinedTypeName","pathNode":{"id":97567,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"6983:8:163"},"referencedDeclaration":103271,"src":"6983:8:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":97572,"mutability":"mutable","name":"timestamp","nameLocation":"7012:9:163","nodeType":"VariableDeclaration","scope":97628,"src":"7002:19:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"},"typeName":{"id":97571,"nodeType":"UserDefinedTypeName","pathNode":{"id":97570,"name":"Timestamp","nodeType":"IdentifierPath","referencedDeclaration":103261,"src":"7002:9:163"},"referencedDeclaration":103261,"src":"7002:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},"visibility":"internal"},{"constant":false,"id":97575,"mutability":"mutable","name":"proxy","nameLocation":"7036:5:163","nodeType":"VariableDeclaration","scope":97628,"src":"7023:18:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"},"typeName":{"id":97574,"nodeType":"UserDefinedTypeName","pathNode":{"id":97573,"name":"IDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":100327,"src":"7023:12:163"},"referencedDeclaration":100327,"src":"7023:12:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"visibility":"internal"}],"id":97579,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":97576,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97562,"src":"7045:2:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},"id":97577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unpack","nodeType":"MemberAccess","referencedDeclaration":100777,"src":"7045:9:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_GameId_$103265_$returns$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Timestamp_$103261_$_t_contract$_IDisputeGame_$100327_$bound_to$_t_userDefinedValueType$_GameId_$103265_$","typeString":"function (GameId) pure returns (GameType,Timestamp,contract IDisputeGame)"}},"id":97578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7045:11:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_GameType_$103271_$_t_userDefinedValueType$_Timestamp_$103261_$_t_contract$_IDisputeGame_$100327_$","typeString":"tuple(GameType,Timestamp,contract IDisputeGame)"}},"nodeType":"VariableDeclarationStatement","src":"6982:74:163"},{"condition":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":97586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":97580,"name":"gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97569,"src":"7075:8:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"id":97581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101150,"src":"7075:12:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_GameType_$103271_$returns$_t_uint32_$bound_to$_t_userDefinedValueType$_GameType_$103271_$","typeString":"function (GameType) pure returns (uint32)"}},"id":97582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7075:14:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":97583,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97526,"src":"7093:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"id":97584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"raw","nodeType":"MemberAccess","referencedDeclaration":101150,"src":"7093:13:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_GameType_$103271_$returns$_t_uint32_$bound_to$_t_userDefinedValueType$_GameType_$103271_$","typeString":"function (GameType) pure returns (uint32)"}},"id":97585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7093:15:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"7075:33:163","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":97623,"nodeType":"IfStatement","src":"7071:834:163","trueBody":{"id":97622,"nodeType":"Block","src":"7110:795:163","statements":[{"AST":{"nodeType":"YulBlock","src":"7377:80:163","statements":[{"expression":{"arguments":[{"name":"games_","nodeType":"YulIdentifier","src":"7406:6:163"},{"arguments":[{"arguments":[{"name":"games_","nodeType":"YulIdentifier","src":"7424:6:163"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7418:5:163"},"nodeType":"YulFunctionCall","src":"7418:13:163"},{"kind":"number","nodeType":"YulLiteral","src":"7433:4:163","type":"","value":"0x01"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7414:3:163"},"nodeType":"YulFunctionCall","src":"7414:24:163"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7399:6:163"},"nodeType":"YulFunctionCall","src":"7399:40:163"},"nodeType":"YulExpressionStatement","src":"7399:40:163"}]},"evmVersion":"london","externalReferences":[{"declaration":97535,"isOffset":false,"isSlot":false,"src":"7406:6:163","valueSize":1},{"declaration":97535,"isOffset":false,"isSlot":false,"src":"7424:6:163","valueSize":1}],"id":97587,"nodeType":"InlineAssembly","src":"7368:89:163"},{"assignments":[97589],"declarations":[{"constant":false,"id":97589,"mutability":"mutable","name":"extraData","nameLocation":"7488:9:163","nodeType":"VariableDeclaration","scope":97622,"src":"7475:22:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":97588,"name":"bytes","nodeType":"ElementaryTypeName","src":"7475:5:163","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":97593,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":97590,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97575,"src":"7500:5:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"id":97591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"extraData","nodeType":"MemberAccess","referencedDeclaration":100307,"src":"7500:15:163","typeDescriptions":{"typeIdentifier":"t_function_external_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure external returns (bytes memory)"}},"id":97592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7500:17:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7475:42:163"},{"assignments":[97596],"declarations":[{"constant":false,"id":97596,"mutability":"mutable","name":"rootClaim","nameLocation":"7541:9:163","nodeType":"VariableDeclaration","scope":97622,"src":"7535:15:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},"typeName":{"id":97595,"nodeType":"UserDefinedTypeName","pathNode":{"id":97594,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":103255,"src":"7535:5:163"},"referencedDeclaration":103255,"src":"7535:5:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"visibility":"internal"}],"id":97600,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":97597,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97575,"src":"7553:5:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"id":97598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"rootClaim","nodeType":"MemberAccess","referencedDeclaration":100294,"src":"7553:15:163","typeDescriptions":{"typeIdentifier":"t_function_external_pure$__$returns$_t_userDefinedValueType$_Claim_$103255_$","typeString":"function () pure external returns (Claim)"}},"id":97599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7553:17:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},"nodeType":"VariableDeclarationStatement","src":"7535:35:163"},{"expression":{"id":97614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":97601,"name":"games_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97535,"src":"7588:6:163","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GameSearchResult_$100374_memory_ptr_$dyn_memory_ptr","typeString":"struct IDisputeGameFactory.GameSearchResult memory[] memory"}},"id":97606,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":97605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":97602,"name":"games_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97535,"src":"7595:6:163","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GameSearchResult_$100374_memory_ptr_$dyn_memory_ptr","typeString":"struct IDisputeGameFactory.GameSearchResult memory[] memory"}},"id":97603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7595:13:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":97604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7611:1:163","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7595:17:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7588:25:163","typeDescriptions":{"typeIdentifier":"t_struct$_GameSearchResult_$100374_memory_ptr","typeString":"struct IDisputeGameFactory.GameSearchResult memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":97608,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97550,"src":"7662:1:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":97609,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97562,"src":"7695:2:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"}},{"id":97610,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97572,"src":"7730:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"}},{"id":97611,"name":"rootClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97596,"src":"7772:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"}},{"id":97612,"name":"extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97589,"src":"7814:9:163","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_userDefinedValueType$_GameId_$103265","typeString":"GameId"},{"typeIdentifier":"t_userDefinedValueType$_Timestamp_$103261","typeString":"Timestamp"},{"typeIdentifier":"t_userDefinedValueType$_Claim_$103255","typeString":"Claim"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":97607,"name":"GameSearchResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100374,"src":"7616:16:163","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GameSearchResult_$100374_storage_ptr_$","typeString":"type(struct IDisputeGameFactory.GameSearchResult storage pointer)"}},"id":97613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["index","metadata","timestamp","rootClaim","extraData"],"nodeType":"FunctionCall","src":"7616:226:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GameSearchResult_$100374_memory_ptr","typeString":"struct IDisputeGameFactory.GameSearchResult memory"}},"src":"7588:254:163","typeDescriptions":{"typeIdentifier":"t_struct$_GameSearchResult_$100374_memory_ptr","typeString":"struct IDisputeGameFactory.GameSearchResult memory"}},"id":97615,"nodeType":"ExpressionStatement","src":"7588:254:163"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":97619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":97616,"name":"games_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97535,"src":"7864:6:163","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GameSearchResult_$100374_memory_ptr_$dyn_memory_ptr","typeString":"struct IDisputeGameFactory.GameSearchResult memory[] memory"}},"id":97617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7864:13:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":97618,"name":"_n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97530,"src":"7881:2:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7864:19:163","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":97621,"nodeType":"IfStatement","src":"7860:30:163","trueBody":{"id":97620,"nodeType":"Break","src":"7885:5:163"}}]}},{"id":97627,"nodeType":"UncheckedBlock","src":"7919:46:163","statements":[{"expression":{"id":97625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"7947:3:163","subExpression":{"id":97624,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97550,"src":"7947:1:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":97626,"nodeType":"ExpressionStatement","src":"7947:3:163"}]}]},"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":97559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":97555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":97553,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97550,"src":"6899:1:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":97554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6904:1:163","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6899:6:163","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":97558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":97556,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97550,"src":"6909:1:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":97557,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97528,"src":"6914:6:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6909:11:163","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6899:21:163","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":97629,"initializationExpression":{"assignments":[97550],"declarations":[{"constant":false,"id":97550,"mutability":"mutable","name":"i","nameLocation":"6887:1:163","nodeType":"VariableDeclaration","scope":97629,"src":"6879:9:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97549,"name":"uint256","nodeType":"ElementaryTypeName","src":"6879:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":97552,"initialValue":{"id":97551,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97528,"src":"6891:6:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6879:18:163"},"nodeType":"ForStatement","src":"6874:1101:163"}]},"baseFunctions":[100496],"documentation":{"id":97523,"nodeType":"StructuredDocumentation","src":"6012:35:163","text":"@inheritdoc IDisputeGameFactory"},"functionSelector":"254bd683","implemented":true,"kind":"function","modifiers":[],"name":"findLatestGames","nameLocation":"6061:15:163","parameters":{"id":97531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97526,"mutability":"mutable","name":"_gameType","nameLocation":"6095:9:163","nodeType":"VariableDeclaration","scope":97631,"src":"6086:18:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":97525,"nodeType":"UserDefinedTypeName","pathNode":{"id":97524,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"6086:8:163"},"referencedDeclaration":103271,"src":"6086:8:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":97528,"mutability":"mutable","name":"_start","nameLocation":"6122:6:163","nodeType":"VariableDeclaration","scope":97631,"src":"6114:14:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97527,"name":"uint256","nodeType":"ElementaryTypeName","src":"6114:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":97530,"mutability":"mutable","name":"_n","nameLocation":"6146:2:163","nodeType":"VariableDeclaration","scope":97631,"src":"6138:10:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97529,"name":"uint256","nodeType":"ElementaryTypeName","src":"6138:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6076:78:163"},"returnParameters":{"id":97536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97535,"mutability":"mutable","name":"games_","nameLocation":"6228:6:163","nodeType":"VariableDeclaration","scope":97631,"src":"6202:32:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GameSearchResult_$100374_memory_ptr_$dyn_memory_ptr","typeString":"struct IDisputeGameFactory.GameSearchResult[]"},"typeName":{"baseType":{"id":97533,"nodeType":"UserDefinedTypeName","pathNode":{"id":97532,"name":"GameSearchResult","nodeType":"IdentifierPath","referencedDeclaration":100374,"src":"6202:16:163"},"referencedDeclaration":100374,"src":"6202:16:163","typeDescriptions":{"typeIdentifier":"t_struct$_GameSearchResult_$100374_storage_ptr","typeString":"struct IDisputeGameFactory.GameSearchResult"}},"id":97534,"nodeType":"ArrayTypeName","src":"6202:18:163","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GameSearchResult_$100374_storage_$dyn_storage_ptr","typeString":"struct IDisputeGameFactory.GameSearchResult[]"}},"visibility":"internal"}],"src":"6201:34:163"},"scope":97682,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":97658,"nodeType":"FunctionDefinition","src":"8027:190:163","nodes":[],"body":{"id":97657,"nodeType":"Block","src":"8113:104:163","nodes":[],"statements":[{"expression":{"id":97647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":97643,"name":"gameImpls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97221,"src":"8123:9:163","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_GameType_$103271_$_t_contract$_IDisputeGame_$100327_$","typeString":"mapping(GameType => contract IDisputeGame)"}},"id":97645,"indexExpression":{"id":97644,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97635,"src":"8133:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8123:20:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":97646,"name":"_impl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97638,"src":"8146:5:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"src":"8123:28:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"id":97648,"nodeType":"ExpressionStatement","src":"8123:28:163"},{"eventCall":{"arguments":[{"arguments":[{"id":97652,"name":"_impl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97638,"src":"8192:5:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}],"id":97651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8184:7:163","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":97650,"name":"address","nodeType":"ElementaryTypeName","src":"8184:7:163","typeDescriptions":{}}},"id":97653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8184:14:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97654,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97635,"src":"8200:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}],"id":97649,"name":"ImplementationSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100352,"src":"8166:17:163","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_userDefinedValueType$_GameType_$103271_$returns$__$","typeString":"function (address,GameType)"}},"id":97655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8166:44:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97656,"nodeType":"EmitStatement","src":"8161:49:163"}]},"baseFunctions":[100457],"documentation":{"id":97632,"nodeType":"StructuredDocumentation","src":"7987:35:163","text":"@inheritdoc IDisputeGameFactory"},"functionSelector":"14f6b1a3","implemented":true,"kind":"function","modifiers":[{"id":97641,"kind":"modifierInvocation","modifierName":{"id":97640,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46877,"src":"8103:9:163"},"nodeType":"ModifierInvocation","src":"8103:9:163"}],"name":"setImplementation","nameLocation":"8036:17:163","parameters":{"id":97639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97635,"mutability":"mutable","name":"_gameType","nameLocation":"8063:9:163","nodeType":"VariableDeclaration","scope":97658,"src":"8054:18:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":97634,"nodeType":"UserDefinedTypeName","pathNode":{"id":97633,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"8054:8:163"},"referencedDeclaration":103271,"src":"8054:8:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":97638,"mutability":"mutable","name":"_impl","nameLocation":"8087:5:163","nodeType":"VariableDeclaration","scope":97658,"src":"8074:18:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"},"typeName":{"id":97637,"nodeType":"UserDefinedTypeName","pathNode":{"id":97636,"name":"IDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":100327,"src":"8074:12:163"},"referencedDeclaration":100327,"src":"8074:12:163","typeDescriptions":{"typeIdentifier":"t_contract$_IDisputeGame_$100327","typeString":"contract IDisputeGame"}},"visibility":"internal"}],"src":"8053:40:163"},"returnParameters":{"id":97642,"nodeType":"ParameterList","parameters":[],"src":"8113:0:163"},"scope":97682,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":97681,"nodeType":"FunctionDefinition","src":"8263:180:163","nodes":[],"body":{"id":97680,"nodeType":"Block","src":"8342:101:163","nodes":[],"statements":[{"expression":{"id":97673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":97669,"name":"initBonds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97227,"src":"8352:9:163","typeDescriptions":{"typeIdentifier":"t_mapping$_t_userDefinedValueType$_GameType_$103271_$_t_uint256_$","typeString":"mapping(GameType => uint256)"}},"id":97671,"indexExpression":{"id":97670,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97662,"src":"8362:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8352:20:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":97672,"name":"_initBond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97664,"src":"8375:9:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8352:32:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":97674,"nodeType":"ExpressionStatement","src":"8352:32:163"},{"eventCall":{"arguments":[{"id":97676,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97662,"src":"8415:9:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},{"id":97677,"name":"_initBond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97664,"src":"8426:9:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":97675,"name":"InitBondUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100360,"src":"8399:15:163","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_userDefinedValueType$_GameType_$103271_$_t_uint256_$returns$__$","typeString":"function (GameType,uint256)"}},"id":97678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8399:37:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97679,"nodeType":"EmitStatement","src":"8394:42:163"}]},"baseFunctions":[100466],"documentation":{"id":97659,"nodeType":"StructuredDocumentation","src":"8223:35:163","text":"@inheritdoc IDisputeGameFactory"},"functionSelector":"1e334240","implemented":true,"kind":"function","modifiers":[{"id":97667,"kind":"modifierInvocation","modifierName":{"id":97666,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46877,"src":"8332:9:163"},"nodeType":"ModifierInvocation","src":"8332:9:163"}],"name":"setInitBond","nameLocation":"8272:11:163","parameters":{"id":97665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97662,"mutability":"mutable","name":"_gameType","nameLocation":"8293:9:163","nodeType":"VariableDeclaration","scope":97681,"src":"8284:18:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"},"typeName":{"id":97661,"nodeType":"UserDefinedTypeName","pathNode":{"id":97660,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":103271,"src":"8284:8:163"},"referencedDeclaration":103271,"src":"8284:8:163","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$103271","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":97664,"mutability":"mutable","name":"_initBond","nameLocation":"8312:9:163","nodeType":"VariableDeclaration","scope":97681,"src":"8304:17:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97663,"name":"uint256","nodeType":"ElementaryTypeName","src":"8304:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8283:39:163"},"returnParameters":{"id":97668,"nodeType":"ParameterList","parameters":[],"src":"8342:0:163"},"scope":97682,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":97202,"name":"OwnableUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":46963,"src":"1020:18:163"},"id":97203,"nodeType":"InheritanceSpecifier","src":"1020:18:163"},{"baseName":{"id":97204,"name":"IDisputeGameFactory","nodeType":"IdentifierPath","referencedDeclaration":100497,"src":"1040:19:163"},"id":97205,"nodeType":"InheritanceSpecifier","src":"1040:19:163"},{"baseName":{"id":97206,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"1061:7:163"},"id":97207,"nodeType":"InheritanceSpecifier","src":"1061:7:163"}],"canonicalName":"DisputeGameFactory","contractDependencies":[],"contractKind":"contract","documentation":{"id":97201,"nodeType":"StructuredDocumentation","src":"573:416:163","text":"@title DisputeGameFactory\n @notice A factory contract for creating `IDisputeGame` contracts. All created dispute games are stored in both a\n         mapping and an append only array. The timestamp of the creation time of the dispute game is packed tightly\n         into the storage slot with the address of the dispute game to make offchain discoverability of playable\n         dispute games easier."},"fullyImplemented":true,"linearizedBaseContracts":[97682,109417,100497,46963,48502,47114],"name":"DisputeGameFactory","nameLocation":"998:18:163","scope":97683,"usedErrors":[103105,103111,103123]}],"license":"MIT"},"id":163}