{"abi":[{"type":"constructor","inputs":[{"name":"_gameType","type":"uint32","internalType":"GameType"},{"name":"_absolutePrestate","type":"bytes32","internalType":"Claim"},{"name":"_maxGameDepth","type":"uint256","internalType":"uint256"},{"name":"_splitDepth","type":"uint256","internalType":"uint256"},{"name":"_clockExtension","type":"uint64","internalType":"Duration"},{"name":"_maxClockDuration","type":"uint64","internalType":"Duration"},{"name":"_vm","type":"address","internalType":"contract IBigStepper"},{"name":"_weth","type":"address","internalType":"contract IDelayedWETH"},{"name":"_anchorStateRegistry","type":"address","internalType":"contract IAnchorStateRegistry"},{"name":"_l2ChainId","type":"uint256","internalType":"uint256"},{"name":"_proposer","type":"address","internalType":"address"},{"name":"_challenger","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"absolutePrestate","inputs":[],"outputs":[{"name":"absolutePrestate_","type":"bytes32","internalType":"Claim"}],"stateMutability":"view"},{"type":"function","name":"addLocalData","inputs":[{"name":"_ident","type":"uint256","internalType":"uint256"},{"name":"_execLeafIdx","type":"uint256","internalType":"uint256"},{"name":"_partOffset","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"anchorStateRegistry","inputs":[],"outputs":[{"name":"registry_","type":"address","internalType":"contract IAnchorStateRegistry"}],"stateMutability":"view"},{"type":"function","name":"attack","inputs":[{"name":"_disputed","type":"bytes32","internalType":"Claim"},{"name":"_parentIndex","type":"uint256","internalType":"uint256"},{"name":"_claim","type":"bytes32","internalType":"Claim"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"challengeRootL2Block","inputs":[{"name":"_outputRootProof","type":"tuple","internalType":"struct Types.OutputRootProof","components":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"stateRoot","type":"bytes32","internalType":"bytes32"},{"name":"messagePasserStorageRoot","type":"bytes32","internalType":"bytes32"},{"name":"latestBlockhash","type":"bytes32","internalType":"bytes32"}]},{"name":"_headerRLP","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"challenger","inputs":[],"outputs":[{"name":"challenger_","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claimCredit","inputs":[{"name":"_recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimData","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"parentIndex","type":"uint32","internalType":"uint32"},{"name":"counteredBy","type":"address","internalType":"address"},{"name":"claimant","type":"address","internalType":"address"},{"name":"bond","type":"uint128","internalType":"uint128"},{"name":"claim","type":"bytes32","internalType":"Claim"},{"name":"position","type":"uint128","internalType":"Position"},{"name":"clock","type":"uint128","internalType":"Clock"}],"stateMutability":"view"},{"type":"function","name":"claimDataLen","inputs":[],"outputs":[{"name":"len_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"claims","inputs":[{"name":"","type":"bytes32","internalType":"Hash"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"clockExtension","inputs":[],"outputs":[{"name":"clockExtension_","type":"uint64","internalType":"Duration"}],"stateMutability":"view"},{"type":"function","name":"createdAt","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"Timestamp"}],"stateMutability":"view"},{"type":"function","name":"credit","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"defend","inputs":[{"name":"_disputed","type":"bytes32","internalType":"Claim"},{"name":"_parentIndex","type":"uint256","internalType":"uint256"},{"name":"_claim","type":"bytes32","internalType":"Claim"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"extraData","inputs":[],"outputs":[{"name":"extraData_","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"gameCreator","inputs":[],"outputs":[{"name":"creator_","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"gameData","inputs":[],"outputs":[{"name":"gameType_","type":"uint32","internalType":"GameType"},{"name":"rootClaim_","type":"bytes32","internalType":"Claim"},{"name":"extraData_","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"gameType","inputs":[],"outputs":[{"name":"gameType_","type":"uint32","internalType":"GameType"}],"stateMutability":"view"},{"type":"function","name":"getChallengerDuration","inputs":[{"name":"_claimIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"duration_","type":"uint64","internalType":"Duration"}],"stateMutability":"view"},{"type":"function","name":"getNumToResolve","inputs":[{"name":"_claimIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"numRemainingChildren_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRequiredBond","inputs":[{"name":"_position","type":"uint128","internalType":"Position"}],"outputs":[{"name":"requiredBond_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"l1Head","inputs":[],"outputs":[{"name":"l1Head_","type":"bytes32","internalType":"Hash"}],"stateMutability":"pure"},{"type":"function","name":"l2BlockNumber","inputs":[],"outputs":[{"name":"l2BlockNumber_","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"l2BlockNumberChallenged","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"l2BlockNumberChallenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"l2ChainId","inputs":[],"outputs":[{"name":"l2ChainId_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxClockDuration","inputs":[],"outputs":[{"name":"maxClockDuration_","type":"uint64","internalType":"Duration"}],"stateMutability":"view"},{"type":"function","name":"maxGameDepth","inputs":[],"outputs":[{"name":"maxGameDepth_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"move","inputs":[{"name":"_disputed","type":"bytes32","internalType":"Claim"},{"name":"_challengeIndex","type":"uint256","internalType":"uint256"},{"name":"_claim","type":"bytes32","internalType":"Claim"},{"name":"_isAttack","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"proposer","inputs":[],"outputs":[{"name":"proposer_","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resolutionCheckpoints","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"initialCheckpointComplete","type":"bool","internalType":"bool"},{"name":"subgameIndex","type":"uint32","internalType":"uint32"},{"name":"leftmostPosition","type":"uint128","internalType":"Position"},{"name":"counteredBy","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resolve","inputs":[],"outputs":[{"name":"status_","type":"uint8","internalType":"enum GameStatus"}],"stateMutability":"nonpayable"},{"type":"function","name":"resolveClaim","inputs":[{"name":"_claimIndex","type":"uint256","internalType":"uint256"},{"name":"_numToResolve","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"resolvedAt","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"Timestamp"}],"stateMutability":"view"},{"type":"function","name":"resolvedSubgames","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"rootClaim","inputs":[],"outputs":[{"name":"rootClaim_","type":"bytes32","internalType":"Claim"}],"stateMutability":"pure"},{"type":"function","name":"splitDepth","inputs":[],"outputs":[{"name":"splitDepth_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"startingBlockNumber","inputs":[],"outputs":[{"name":"startingBlockNumber_","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"startingOutputRoot","inputs":[],"outputs":[{"name":"root","type":"bytes32","internalType":"Hash"},{"name":"l2BlockNumber","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"startingRootHash","inputs":[],"outputs":[{"name":"startingRootHash_","type":"bytes32","internalType":"Hash"}],"stateMutability":"view"},{"type":"function","name":"status","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum GameStatus"}],"stateMutability":"view"},{"type":"function","name":"step","inputs":[{"name":"_claimIndex","type":"uint256","internalType":"uint256"},{"name":"_isAttack","type":"bool","internalType":"bool"},{"name":"_stateData","type":"bytes","internalType":"bytes"},{"name":"_proof","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"subgames","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"vm","inputs":[],"outputs":[{"name":"vm_","type":"address","internalType":"contract IBigStepper"}],"stateMutability":"view"},{"type":"function","name":"weth","inputs":[],"outputs":[{"name":"weth_","type":"address","internalType":"contract IDelayedWETH"}],"stateMutability":"view"},{"type":"event","name":"Move","inputs":[{"name":"parentIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"claim","type":"bytes32","indexed":true,"internalType":"Claim"},{"name":"claimant","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Resolved","inputs":[{"name":"status","type":"uint8","indexed":true,"internalType":"enum GameStatus"}],"anonymous":false},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AnchorRootNotFound","inputs":[]},{"type":"error","name":"BadAuth","inputs":[]},{"type":"error","name":"BlockNumberMatches","inputs":[]},{"type":"error","name":"BondTransferFailed","inputs":[]},{"type":"error","name":"CannotDefendRootClaim","inputs":[]},{"type":"error","name":"ClaimAboveSplit","inputs":[]},{"type":"error","name":"ClaimAlreadyExists","inputs":[]},{"type":"error","name":"ClaimAlreadyResolved","inputs":[]},{"type":"error","name":"ClockNotExpired","inputs":[]},{"type":"error","name":"ClockTimeExceeded","inputs":[]},{"type":"error","name":"ContentLengthMismatch","inputs":[]},{"type":"error","name":"DuplicateStep","inputs":[]},{"type":"error","name":"EmptyItem","inputs":[]},{"type":"error","name":"GameDepthExceeded","inputs":[]},{"type":"error","name":"GameNotInProgress","inputs":[]},{"type":"error","name":"IncorrectBondAmount","inputs":[]},{"type":"error","name":"InvalidChallengePeriod","inputs":[]},{"type":"error","name":"InvalidClockExtension","inputs":[]},{"type":"error","name":"InvalidDataRemainder","inputs":[]},{"type":"error","name":"InvalidDisputedClaimIndex","inputs":[]},{"type":"error","name":"InvalidHeader","inputs":[]},{"type":"error","name":"InvalidHeaderRLP","inputs":[]},{"type":"error","name":"InvalidLocalIdent","inputs":[]},{"type":"error","name":"InvalidOutputRootProof","inputs":[]},{"type":"error","name":"InvalidParent","inputs":[]},{"type":"error","name":"InvalidPrestate","inputs":[]},{"type":"error","name":"InvalidSplitDepth","inputs":[]},{"type":"error","name":"L2BlockNumberChallenged","inputs":[]},{"type":"error","name":"MaxDepthTooLarge","inputs":[]},{"type":"error","name":"NoCreditToClaim","inputs":[]},{"type":"error","name":"OutOfOrderResolution","inputs":[]},{"type":"error","name":"UnexpectedList","inputs":[]},{"type":"error","name":"UnexpectedRootClaim","inputs":[{"name":"rootClaim","type":"bytes32","internalType":"Claim"}]},{"type":"error","name":"UnexpectedString","inputs":[]},{"type":"error","name":"ValidStep","inputs":[]}],"bytecode":{"object":"0x6102006040523480156200001257600080fd5b506040516200678d3803806200678d833981016040819052620000359162000469565b8b8b8b8b8b8b8b8b8b8b6200004d6001607e6200055c565b60ff168811156200007157604051633beff19960e11b815260040160405180910390fd5b6000198714806200008e5750876200008b88600162000582565b10155b15620000ad5760405163e62ccf3960e01b815260040160405180910390fd5b6002871015620000d05760405163e62ccf3960e01b815260040160405180910390fd5b6001600160401b038016846001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000119573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013f91906200059d565b6001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200017d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a39190620005bd565b1115620001c35760405163b4e1243360e01b815260040160405180910390fd5b6000620001e4876001600160401b03166200040860201b62000d051760201c565b620001fa906001600160401b03166002620005d7565b90506000856001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200023d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026391906200059d565b6001600160a01b031663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c79190620005bd565b620002e6896001600160401b03166200040860201b62000d051760201c565b6001600160401b0316620002fb919062000582565b905060006200031683836200040b60201b620026401760201c565b90506001600160401b03811115620003415760405163235dfb2b60e21b815260040160405180910390fd5b62000360886001600160401b03166200040860201b62000d051760201c565b6001600160401b0316816001600160401b03161115620003935760405163235dfb2b60e21b815260040160405180910390fd5b50505063ffffffff9099166101205260809790975260a09590955260c0939093526001600160401b039182166101a0521660e0526001600160a01b03908116610100529081166101405290811661016052610180919091529182166101c052166101e05250620005f998505050505050505050565b90565b6000818310156200041d57816200041f565b825b9392505050565b80516001600160401b03811681146200043e57600080fd5b919050565b6001600160a01b03811681146200045957600080fd5b50565b80516200043e8162000443565b6000806000806000806000806000806000806101808d8f0312156200048d57600080fd5b8c5163ffffffff81168114620004a257600080fd5b809c505060208d01519a5060408d0151995060608d01519850620004c960808e0162000426565b9750620004d960a08e0162000426565b9650620004e960c08e016200045c565b9550620004f960e08e016200045c565b94506200050a6101008e016200045c565b93506101208d01519250620005236101408e016200045c565b9150620005346101608e016200045c565b90509295989b509295989b509295989b565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff84168082101562000579576200057962000546565b90039392505050565b6000821982111562000598576200059862000546565b500190565b600060208284031215620005b057600080fd5b81516200041f8162000443565b600060208284031215620005d057600080fd5b5051919050565b6000816000190483118215151615620005f457620005f462000546565b500290565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051615fd5620007b86000396000818161058301528181611b1501526120b50152600081816108ce01528181611ad601528181611ba401526120760152600081816107040152818161305a015281816130c501526130f8015260008181610a9a015261255301526000818161065c01528181611806015261367a01526000818161053d015281816119c801528181612a2e0152818161351f0152613a7c015260008181610909015281816125e201526136390152600081816104ca015281816121b101528181612f59015261436c015260008181610aed01528181610fdc01528181611d7a01528181611dbc01528181612ec9015281816131280152613187015260008181610b20015281816123b001528181612d1201528181612e3801528181613096015281816141bf0152818161466e0152818161476f015281816148440152818161511b0152615347015260008181610bc701528181611e8a01528181611f1001528181612ddb01528181612f2d015281816140b501526141e00152600081816107cf015261427e0152615fd56000f3fe6080604052600436106103085760003560e01c806370872aa51161019a578063c6f0308c116100e1578063ec5e63081161008a578063fa24f74311610064578063fa24f74314610b94578063fa315aa914610bb8578063fe2bbeb214610beb57600080fd5b8063ec5e630814610b11578063eff0f59214610b44578063f8f43ff614610b7457600080fd5b8063d6ae3cd5116100bb578063d6ae3cd514610a8b578063d8cc1a3c14610abe578063dabd396d14610ade57600080fd5b8063c6f0308c146109b3578063cf09e0d014610a3d578063d5d44d8014610a5e57600080fd5b8063a445ece611610143578063bcef3b551161011d578063bcef3b5514610933578063bd8da95614610973578063c395e1ca1461099357600080fd5b8063a445ece6146107f3578063a8e4fb90146108bf578063bbdc02db146108f257600080fd5b80638980e0cc116101745780638980e0cc1461076b5780638b85902b146107805780638d450a95146107c057600080fd5b806370872aa51461073b5780637b0f0adc146107505780638129fc1c1461076357600080fd5b80633fc8cef31161025e5780635c0cba33116102075780636361506d116101e15780636361506d146106b55780636b6716c0146106f55780636f0344091461072857600080fd5b80635c0cba331461064d578063609d33341461068057806360e274641461069557600080fd5b806354fd4d501161023857806354fd4d50146105a757806357da950e146105fd5780635a5fa2d91461062d57600080fd5b80633fc8cef31461052e578063472777c614610561578063534db0e21461057457600080fd5b80632810e1d6116102c057806337b1b2291161029a57806337b1b2291461047b5780633a768463146104bb5780633e3ac912146104ee57600080fd5b80632810e1d6146103f45780632ad69aeb1461040957806330dbe5701461042957600080fd5b806319effeb4116102f157806319effeb41461034f578063200d2ed21461039a57806325fc2ace146103d557600080fd5b8063019351301461030d57806303c2924d1461032f575b600080fd5b34801561031957600080fd5b5061032d61032836600461575d565b610c1b565b005b34801561033b57600080fd5b5061032d61034a3660046157b8565b610f3c565b34801561035b57600080fd5b5060005461037c9068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156103a657600080fd5b506000546103c890700100000000000000000000000000000000900460ff1681565b6040516103919190615809565b3480156103e157600080fd5b506008545b604051908152602001610391565b34801561040057600080fd5b506103c86115e2565b34801561041557600080fd5b506103e66104243660046157b8565b611887565b34801561043557600080fd5b506001546104569073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610391565b34801561048757600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560601c610456565b3480156104c757600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610456565b3480156104fa57600080fd5b5060005461051e907201000000000000000000000000000000000000900460ff1681565b6040519015158152602001610391565b34801561053a57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610456565b61032d61056f36600461584a565b6118bd565b34801561058057600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610456565b3480156105b357600080fd5b506105f06040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b60405161039191906158e1565b34801561060957600080fd5b50600854600954610618919082565b60408051928352602083019190915201610391565b34801561063957600080fd5b506103e66106483660046158f4565b6118cf565b34801561065957600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610456565b34801561068c57600080fd5b506105f0611909565b3480156106a157600080fd5b5061032d6106b0366004615932565b611917565b3480156106c157600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003603401356103e6565b34801561070157600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061037c565b61032d610736366004615964565b611abe565b34801561074757600080fd5b506009546103e6565b61032d61075e36600461584a565b611b7f565b61032d611b8c565b34801561077757600080fd5b506002546103e6565b34801561078c57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003605401356103e6565b3480156107cc57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103e6565b3480156107ff57600080fd5b5061086b61080e3660046158f4565b6007602052600090815260409020805460019091015460ff821691610100810463ffffffff1691650100000000009091046fffffffffffffffffffffffffffffffff169073ffffffffffffffffffffffffffffffffffffffff1684565b60408051941515855263ffffffff90931660208501526fffffffffffffffffffffffffffffffff9091169183019190915273ffffffffffffffffffffffffffffffffffffffff166060820152608001610391565b3480156108cb57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610456565b3480156108fe57600080fd5b5060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610391565b34801561093f57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003601401356103e6565b34801561097f57600080fd5b5061037c61098e3660046158f4565b611c05565b34801561099f57600080fd5b506103e66109ae3660046159a3565b611de4565b3480156109bf57600080fd5b506109d36109ce3660046158f4565b611fc7565b6040805163ffffffff909816885273ffffffffffffffffffffffffffffffffffffffff968716602089015295909416948601949094526fffffffffffffffffffffffffffffffff9182166060860152608085015291821660a08401521660c082015260e001610391565b348015610a4957600080fd5b5060005461037c9067ffffffffffffffff1681565b348015610a6a57600080fd5b506103e6610a79366004615932565b60036020526000908152604090205481565b348015610a9757600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103e6565b348015610aca57600080fd5b5061032d610ad93660046159d5565b61205e565b348015610aea57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061037c565b348015610b1d57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103e6565b348015610b5057600080fd5b5061051e610b5f3660046158f4565b60046020526000908152604090205460ff1681565b348015610b8057600080fd5b5061032d610b8f36600461584a565b612123565b348015610ba057600080fd5b50610ba96125e0565b60405161039193929190615a5f565b348015610bc457600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103e6565b348015610bf757600080fd5b5061051e610c063660046158f4565b60066020526000908152604090205460ff1681565b60008054700100000000000000000000000000000000900460ff166002811115610c4757610c476157da565b14610c7e576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000547201000000000000000000000000000000000000900460ff1615610cd1576040517f0ea2e75200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d08367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036014013590565b90565b610d1f610d1a36869003860186615ab3565b61265b565b14610d56576040517f9cc00b5b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82606001358282604051610d6b929190615b40565b604051809103902014610daa576040517fd81d583b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610df3610dee84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506126b792505050565b612724565b90506000610e1a82600881518110610e0d57610e0d615b50565b60200260200101516128da565b9050602081511115610e58576040517fd81d583b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081810151825190910360031b1c367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003605401358103610ecd576040517fb8ed883000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050600180547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790555050600080547fffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff1672010000000000000000000000000000000000001790555050565b60008054700100000000000000000000000000000000900460ff166002811115610f6857610f686157da565b14610f9f576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028381548110610fb457610fb4615b50565b906000526020600020906005020190506000610fcf84611c05565b905067ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081169082161015611038576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008481526006602052604090205460ff1615611081576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600084815260056020526040902080548015801561109e57508515155b15611139578354640100000000900473ffffffffffffffffffffffffffffffffffffffff16600081156110d157816110ed565b600186015473ffffffffffffffffffffffffffffffffffffffff165b90506110f9818761298e565b50505060009485525050600660205250506040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6000868152600760209081526040918290208251608081018452815460ff81161515808352610100820463ffffffff16948301949094526501000000000090046fffffffffffffffffffffffffffffffff16938101939093526001015473ffffffffffffffffffffffffffffffffffffffff1660608301526111dc576fffffffffffffffffffffffffffffffff60408201526001815260008690036111dc578195505b600086826020015163ffffffff166111f49190615bae565b905060008382116112055781611207565b835b602084015190915063ffffffff165b8181101561135357600086828154811061123257611232615b50565b6000918252602080832090910154808352600690915260409091205490915060ff1661128a576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006002828154811061129f5761129f615b50565b600091825260209091206005909102018054909150640100000000900473ffffffffffffffffffffffffffffffffffffffff161580156112fc5750600481015460408701516fffffffffffffffffffffffffffffffff9182169116115b1561133e57600181015473ffffffffffffffffffffffffffffffffffffffff16606087015260048101546fffffffffffffffffffffffffffffffff1660408701525b5050808061134b90615bc6565b915050611216565b5063ffffffff818116602085810191825260008c81526007909152604090819020865181549351928801517fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009094169015157fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff161761010092909416918202939093177fffffffffffffffffffffff00000000000000000000000000000000ffffffffff16650100000000006fffffffffffffffffffffffffffffffff909316929092029190911782556060850151600190920180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909316929092179091558490036115d757606083015160008a815260066020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055891580156114d357506000547201000000000000000000000000000000000000900460ff165b156115485760015473ffffffffffffffffffffffffffffffffffffffff166114fb818a61298e565b885473ffffffffffffffffffffffffffffffffffffffff909116640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff9091161788556115d5565b61158f73ffffffffffffffffffffffffffffffffffffffff82161561156d5781611589565b600189015473ffffffffffffffffffffffffffffffffffffffff165b8961298e565b87547fffffffffffffffff0000000000000000000000000000000000000000ffffffff1664010000000073ffffffffffffffffffffffffffffffffffffffff8316021788555b505b505050505050505050565b600080600054700100000000000000000000000000000000900460ff166002811115611610576116106157da565b14611647576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85460ff166116ab576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660026000815481106116d7576116d7615b50565b6000918252602090912060059091020154640100000000900473ffffffffffffffffffffffffffffffffffffffff1614611712576001611715565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff909116177001000000000000000000000000000000008360028111156117c6576117c66157da565b0217905560028111156117db576117db6157da565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a27f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663838c2d1e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561186c57600080fd5b505af1158015611880573d6000803e3d6000fd5b5050505090565b600560205281600052604060002081815481106118a357600080fd5b90600052602060002001600091509150505481565b905090565b6118ca8383836001611abe565b505050565b6000818152600760209081526040808320600590925282208054825461190090610100900463ffffffff1682615bfe565b95945050505050565b60606118b860546020612a8f565b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604081208054908290559081900361197c576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063f3fef3a390604401600060405180830381600087803b158015611a0c57600080fd5b505af1158015611a20573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114611a7e576040519150601f19603f3d011682016040523d82523d6000602084013e611a83565b606091505b50509050806118ca576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161480611b3757503373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016145b611b6d576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b7984848484612ae1565b50505050565b6118ca8383836000611abe565b3273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611bfb576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c036135ba565b565b600080600054700100000000000000000000000000000000900460ff166002811115611c3357611c336157da565b14611c6a576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028381548110611c7f57611c7f615b50565b600091825260208220600590910201805490925063ffffffff90811614611cee57815460028054909163ffffffff16908110611cbd57611cbd615b50565b906000526020600020906005020160040160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b6004820154600090611d2690700100000000000000000000000000000000900467ffffffffffffffff165b67ffffffffffffffff1690565b611d3a9067ffffffffffffffff1642615bfe565b611d59611d19846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16611d6d9190615bae565b905067ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff1611611dba5780611900565b7f000000000000000000000000000000000000000000000000000000000000000095945050505050565b600080611e83836fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690507f0000000000000000000000000000000000000000000000000000000000000000811115611ee2576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b642e90edd00062061a806311e1a3006000611efd8383615c44565b9050670de0b6b3a76400006000611f34827f0000000000000000000000000000000000000000000000000000000000000000615c58565b90506000611f52611f4d670de0b6b3a764000086615c58565b613b13565b90506000611f608484613d6e565b90506000611f6e8383613dbd565b90506000611f7b82613deb565b90506000611f9a82611f95670de0b6b3a76400008f615c58565b613fd3565b90506000611fa88b83613dbd565b9050611fb4818d615c58565b9f9e505050505050505050505050505050565b60028181548110611fd757600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff8416955064010000000090930473ffffffffffffffffffffffffffffffffffffffff908116949216926fffffffffffffffffffffffffffffffff91821692918082169170010000000000000000000000000000000090041687565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614806120d757503373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016145b61210d576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61211b868686868686614004565b505050505050565b60008054700100000000000000000000000000000000900460ff16600281111561214f5761214f6157da565b14612186576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060008061219586614633565b935093509350935060006121ab85858585614a3c565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561221a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223e9190615c95565b9050600189036123365773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8461229a367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036034013590565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af115801561230c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123309190615cb2565b506115d7565b600289036123625773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a848961229a565b6003890361238e5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a848761229a565b600489036125155760006123d46fffffffffffffffffffffffffffffffff85167f0000000000000000000000000000000000000000000000000000000000000000614af6565b6009546123e19190615bae565b6123ec906001615bae565b9050367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360540135811061245557367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360540135612457565b805b905073ffffffffffffffffffffffffffffffffffffffff82166352f0f3ad8b8560405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681526004810192909252602482015260c084901b604482015260086064820152608481018b905260a4016020604051808303816000875af11580156124ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250e9190615cb2565b50506115d7565b600589036125ae576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a9052602481018390527f000000000000000000000000000000000000000000000000000000000000000060c01b6044820152600860648201526084810188905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a4016122ed565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003601401356060612639611909565b9050909192565b6000818310156126505781612652565b825b90505b92915050565b6000816000015182602001518360400151846060015160405160200161269a949392919093845260208401929092526040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60408051808201909152600080825260208201528151600003612706576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b6060600080600061273485614ba4565b91945092509050600181600181111561274f5761274f6157da565b14612786576040517f4b9c6abe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84516127928385615bae565b146127c9576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516020808252610420820190925290816020015b60408051808201909152600080825260208201528152602001906001900390816127e05790505093506000835b86518110156128ce576000806128536040518060400160405280858c600001516128379190615bfe565b8152602001858c6020015161284c9190615bae565b9052614ba4565b50915091506040518060400160405280838361286f9190615bae565b8152602001848b602001516128849190615bae565b81525088858151811061289957612899615b50565b60209081029190910101526128af600185615bae565b93506128bb8183615bae565b6128c59084615bae565b9250505061280d565b50845250919392505050565b606060008060006128ea85614ba4565b919450925090506000816001811115612905576129056157da565b1461293c576040517f1ff9b2e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129468284615bae565b85511461297f576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61190085602001518484615042565b600281015473ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040812080546fffffffffffffffffffffffffffffffff909316928392906129dd908490615bae565b90915550506040517f7eee288d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018390527f00000000000000000000000000000000000000000000000000000000000000001690637eee288d90604401600060405180830381600087803b158015612a7257600080fd5b505af1158015612a86573d6000803e3d6000fd5b50505050505050565b604051818152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b60008054700100000000000000000000000000000000900460ff166002811115612b0d57612b0d6157da565b14612b44576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028481548110612b5957612b59615b50565b60009182526020918290206040805160e0810182526005909302909101805463ffffffff8116845273ffffffffffffffffffffffffffffffffffffffff64010000000090910481169484019490945260018101549093169082015260028201546fffffffffffffffffffffffffffffffff908116606083015260038301546080830181905260049093015480821660a084015270010000000000000000000000000000000090041660c082015291508514612c40576040517f3014033200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60a0810151600083156fffffffffffffffffffffffffffffffff83161760011b90506000612d00826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050861580612d3b5750612d387f00000000000000000000000000000000000000000000000000000000000000006002615bae565b81145b8015612d45575084155b15612d7c576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000547201000000000000000000000000000000000000900460ff168015612da2575086155b15612dd9576040517f0ea2e75200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115612e33576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612e5e7f00000000000000000000000000000000000000000000000000000000000000006001615bae565b8103612e7057612e70868885886150d7565b34612e7a83611de4565b14612eb1576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612ebc88611c05565b905067ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811690821603612f24576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612f5160017f0000000000000000000000000000000000000000000000000000000000000000615bfe565b830361308f577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fe69190615c95565b73ffffffffffffffffffffffffffffffffffffffff1663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015613030573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130549190615cb2565b613088907f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615ccb565b9050613122565b6130ba60017f0000000000000000000000000000000000000000000000000000000000000000615bfe565b83036130f5576130887f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166002615cf7565b507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff165b613156817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615d27565b67ffffffffffffffff166131718367ffffffffffffffff1690565b67ffffffffffffffff1611156131b8576131b5817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615d27565b91505b6000604083901b421760008a8152608087901b6fffffffffffffffffffffffffffffffff8d1617602052604081209192509060008181526004602052604090205490915060ff1615613236576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016004600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060026040518060e001604052808d63ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001346fffffffffffffffffffffffffffffffff1681526020018c8152602001886fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506080820151816003015560a08201518160040160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060c08201518160040160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050600560008c815260200190815260200160002060016002805490506134cc9190615bfe565b81546001810183556000928352602083200155604080517fd0e30db0000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169263d0e30db09234926004808301939282900301818588803b15801561356457600080fd5b505af1158015613578573d6000803e3d6000fd5b50506040513393508d92508e91507f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be90600090a4505050505050505050505050565b60005471010000000000000000000000000000000000900460ff161561360c576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f7258a80700000000000000000000000000000000000000000000000000000000815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166004820152600090819073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690637258a807906024016040805180830381865afa1580156136c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136e49190615d50565b909250905081613720576040517f6a6bc3b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080518082019091528281526020018190526008829055600981905536607a1461375357639824bdab6000526004601cfd5b80367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360540135116137ed576040517ff40239db000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036014013560048201526024015b60405180910390fd5b6040805160e08101825263ffffffff8082526000602083018181527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90038035606090811c868801908152346fffffffffffffffffffffffffffffffff81811693890193845260149094013560808901908152600160a08a0181815242871660c08c019081526002805493840181558a529a5160059092027f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace81018054995173ffffffffffffffffffffffffffffffffffffffff908116640100000000027fffffffffffffffff000000000000000000000000000000000000000000000000909b1694909c16939093179890981790915592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf87018054918a167fffffffffffffffffffffffff000000000000000000000000000000000000000090921691909117905592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0860180549186167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090921691909117905591517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad185015551955182167001000000000000000000000000000000000295909116949094177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad29091015580547fffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff167101000000000000000000000000000000000017815583517fd0e30db000000000000000000000000000000000000000000000000000000000815293517f00000000000000000000000000000000000000000000000000000000000000009092169363d0e30db093926004828101939282900301818588803b158015613ac257600080fd5b505af1158015613ad6573d6000803e3d6000fd5b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555050505050565b6fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1760008213613b7257631615e6386000526004601cfd5b7ff8f9f9faf9fdfafbf9fdfcfdfafbfcfef9fafdfafcfcfbfefafafcfbffffffff6f8421084210842108cc6318c6db6d54be83831c1c601f161a1890811b609f90811c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506029190037d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d90565b60007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218311670de0b6b3a764000002158202613dab57637c5f487d6000526004601cfd5b50670de0b6b3a7640000919091020490565b600081600019048311820215613ddb5763bac65e5b6000526004601cfd5b50670de0b6b3a764000091020490565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdc0d0570925a462d78213613e1957919050565b680755bf798b4a1bf1e58212613e375763a37bfec96000526004601cfd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b6000612652670de0b6b3a764000083613feb86613b13565b613ff59190615d74565b613fff9190615e30565b613deb565b60008054700100000000000000000000000000000000900460ff166002811115614030576140306157da565b14614067576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006002878154811061407c5761407c615b50565b6000918252602082206005919091020160048101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506140db7f00000000000000000000000000000000000000000000000000000000000000006001615bae565b614177826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16146141b1576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008089156142a8576142047f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000615bfe565b6001901b614223846fffffffffffffffffffffffffffffffff16615288565b6fffffffffffffffffffffffffffffffff1661423f9190615e98565b1561427c5761427361426460016fffffffffffffffffffffffffffffffff8716615eac565b865463ffffffff166000615327565b6003015461429e565b7f00000000000000000000000000000000000000000000000000000000000000005b91508490506142d2565b600385015491506142cf6142646fffffffffffffffffffffffffffffffff86166001615ed5565b90505b600882901b60088a8a6040516142e9929190615b40565b6040518091039020901b1461432a576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006143358c61540b565b90506000614344836003015490565b6040517fe14ced320000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e14ced32906143be908f908f908f908f908a90600401615f49565b6020604051808303816000875af11580156143dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144019190615cb2565b6004850154911491506000906002906144ac906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b614548896fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6145529190615f83565b61455c9190615fa6565b60ff16159050811515810361459d576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8754640100000000900473ffffffffffffffffffffffffffffffffffffffff16156145f4576040517f9071e6af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b600080600080600085905060006002828154811061465357614653615b50565b600091825260209091206004600590920201908101549091507f00000000000000000000000000000000000000000000000000000000000000009061472a906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611614764576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f00000000000000000000000000000000000000000000000000000000000000009061482b906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1692508211156148a057825463ffffffff1661486a7f00000000000000000000000000000000000000000000000000000000000000006001615bae565b8303614874578391505b6002818154811061488757614887615b50565b9060005260206000209060050201935080945050614768565b600481810154908401546fffffffffffffffffffffffffffffffff91821691166000816fffffffffffffffffffffffffffffffff166149096148f4856fffffffffffffffffffffffffffffffff1660011c90565b6fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff1614905080156149d8576000614941836fffffffffffffffffffffffffffffffff16615288565b6fffffffffffffffffffffffffffffffff1611156149ac57600061498361497b60016fffffffffffffffffffffffffffffffff8616615eac565b896001615327565b6003810154600490910154909c506fffffffffffffffffffffffffffffffff169a506149b29050565b6008549a505b600386015460048701549099506fffffffffffffffffffffffffffffffff169750614a2e565b60006149fa61497b6fffffffffffffffffffffffffffffffff85166001615ed5565b6003808901546004808b015492840154930154909e506fffffffffffffffffffffffffffffffff9182169d50919b50169850505b505050505050509193509193565b60006fffffffffffffffffffffffffffffffff841615614aa95760408051602081018790526fffffffffffffffffffffffffffffffff8087169282019290925260608101859052908316608082015260a00160405160208183030381529060405280519060200120611900565b8282604051602001614ad79291909182526fffffffffffffffffffffffffffffffff16602082015260400190565b6040516020818303038152906040528051906020012095945050505050565b600080614b83847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690508083036001841b600180831b0386831b17039250505092915050565b60008060008360000151600003614be7576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020840151805160001a607f8111614c0c57600060016000945094509450505061503b565b60b78111614d22576000614c21608083615bfe565b905080876000015111614c60576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001838101517fff00000000000000000000000000000000000000000000000000000000000000169082148015614cd857507f80000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216105b15614d0f576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506001955093506000925061503b915050565b60bf8111614e80576000614d3760b783615bfe565b905080876000015111614d76576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003614dd8576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111614e20576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614e2a8184615bae565b895111614e63576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614e6e836001615bae565b975095506000945061503b9350505050565b60f78111614ee5576000614e9560c083615bfe565b905080876000015111614ed4576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60019550935084925061503b915050565b6000614ef260f783615bfe565b905080876000015111614f31576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003614f93576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111614fdb576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614fe58184615bae565b89511161501e576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b615029836001615bae565b975095506001945061503b9350505050565b9193909250565b60608167ffffffffffffffff81111561505d5761505d615a84565b6040519080825280601f01601f191660200182016040528015615087576020820181803683370190505b50905081156150d057600061509c8486615bae565b90506020820160005b848110156150bd5782810151828201526020016150a5565b848111156150cc576000858301525b5050505b9392505050565b60006150f66fffffffffffffffffffffffffffffffff84166001615ed5565b9050600061510682866001615327565b9050600086901a83806151f2575061513f60027f0000000000000000000000000000000000000000000000000000000000000000615e98565b60048301546002906151e3906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6151ed9190615fa6565b60ff16145b1561524a5760ff81166001148061520c575060ff81166002145b615245576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016137e4565b612a86565b60ff811615612a86576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016137e4565b600080615315837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600160ff919091161b90920392915050565b600080826153705761536b6fffffffffffffffffffffffffffffffff86167f000000000000000000000000000000000000000000000000000000000000000061543a565b61538b565b61538b856fffffffffffffffffffffffffffffffff166155c6565b9050600284815481106153a0576153a0615b50565b906000526020600020906005020191505b60048201546fffffffffffffffffffffffffffffffff82811691161461540357815460028054909163ffffffff169081106153ee576153ee615b50565b906000526020600020906005020191506153b1565b509392505050565b600080600080600061541c86614633565b935093509350935061543084848484614a3c565b9695505050505050565b6000816154d9846fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16116154ef5763b34b5c226000526004601cfd5b6154f8836155c6565b905081615597826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611612655576126526155ad836001615bae565b6fffffffffffffffffffffffffffffffff83169061566b565b6000811960018301168161565a827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169390931c8015179392505050565b6000806156f8847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050808303600180821b0385821b179250505092915050565b60008083601f84011261572657600080fd5b50813567ffffffffffffffff81111561573e57600080fd5b60208301915083602082850101111561575657600080fd5b9250929050565b600080600083850360a081121561577357600080fd5b608081121561578157600080fd5b50839250608084013567ffffffffffffffff81111561579f57600080fd5b6157ab86828701615714565b9497909650939450505050565b600080604083850312156157cb57600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6020810160038310615844577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b60008060006060848603121561585f57600080fd5b505081359360208301359350604090920135919050565b6000815180845260005b8181101561589c57602081850181015186830182015201615880565b818111156158ae576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006126526020830184615876565b60006020828403121561590657600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461592f57600080fd5b50565b60006020828403121561594457600080fd5b81356150d08161590d565b8035801515811461595f57600080fd5b919050565b6000806000806080858703121561597a57600080fd5b8435935060208501359250604085013591506159986060860161594f565b905092959194509250565b6000602082840312156159b557600080fd5b81356fffffffffffffffffffffffffffffffff811681146150d057600080fd5b600080600080600080608087890312156159ee57600080fd5b863595506159fe6020880161594f565b9450604087013567ffffffffffffffff80821115615a1b57600080fd5b615a278a838b01615714565b90965094506060890135915080821115615a4057600080fd5b50615a4d89828a01615714565b979a9699509497509295939492505050565b63ffffffff841681528260208201526060604082015260006119006060830184615876565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060808284031215615ac557600080fd5b6040516080810181811067ffffffffffffffff82111715615b0f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115615bc157615bc1615b7f565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615bf757615bf7615b7f565b5060010190565b600082821015615c1057615c10615b7f565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082615c5357615c53615c15565b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615615c9057615c90615b7f565b500290565b600060208284031215615ca757600080fd5b81516150d08161590d565b600060208284031215615cc457600080fd5b5051919050565b600067ffffffffffffffff808316818516808303821115615cee57615cee615b7f565b01949350505050565b600067ffffffffffffffff80831681851681830481118215151615615d1e57615d1e615b7f565b02949350505050565b600067ffffffffffffffff83811690831681811015615d4857615d48615b7f565b039392505050565b60008060408385031215615d6357600080fd5b505080516020909101519092909150565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615615db557615db5615b7f565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615615df057615df0615b7f565b60008712925087820587128484161615615e0c57615e0c615b7f565b87850587128184161615615e2257615e22615b7f565b505050929093029392505050565b600082615e3f57615e3f615c15565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615615e9357615e93615b7f565b500590565b600082615ea757615ea7615c15565b500690565b60006fffffffffffffffffffffffffffffffff83811690831681811015615d4857615d48615b7f565b60006fffffffffffffffffffffffffffffffff808316818516808303821115615cee57615cee615b7f565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b606081526000615f5d606083018789615f00565b8281036020840152615f70818688615f00565b9150508260408301529695505050505050565b600060ff821660ff841680821015615f9d57615f9d615b7f565b90039392505050565b600060ff831680615fb957615fb9615c15565b8060ff8416069150509291505056fea164736f6c634300080f000a","sourceMap":"1187:4133:187:-:0;;;2763:767;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3198:9;3221:17;3252:13;3279:11;3304:15;3333:17;3364:3;3381:5;3400:20;3434:10;6426:35:186;6460:1;857:3:197;6426:35:186;:::i;:::-;6410:51;;:13;:51;6406:82;;;6470:18;;-1:-1:-1;;;6470:18:186;;;;;;;;;;;6406:82;-1:-1:-1;;6884:11:186;:32;:68;;;-1:-1:-1;6939:13:186;6920:15;:11;6934:1;6920:15;:::i;:::-;:32;;6884:68;6880:100;;;6961:19;;-1:-1:-1;;;6961:19:186;;;;;;;;;;;6880:100;7102:1;7088:11;:15;7084:47;;;7112:19;;-1:-1:-1;;;7112:19:186;;;;;;;;;;;7084:47;-1:-1:-1;;;;;7511:49:186;;:3;-1:-1:-1;;;;;7511:10:186;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7511:28:186;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:49;7507:86;;;7569:24;;-1:-1:-1;;;7569:24:186;;;;;;;;;;;7507:86;7793:27;7831:21;:15;-1:-1:-1;;;;;7831:19:186;;;;;;:21;;:::i;:::-;7823:34;;-1:-1:-1;;;;;7823:30:186;7856:1;7823:34;:::i;:::-;7793:64;;7867:29;7940:3;-1:-1:-1;;;;;7940:10:186;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7940:28:186;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7907:21;:15;-1:-1:-1;;;;;7907:19:186;;;;;;:21;;:::i;:::-;-1:-1:-1;;;;;7899:30:186;:72;;;;:::i;:::-;7867:104;;7981:25;8009:52;8018:19;8039:21;8009:8;;;;;:52;;:::i;:::-;7981:80;-1:-1:-1;;;;;;8139:36:186;;8135:72;;;8184:23;;-1:-1:-1;;;8184:23:186;;;;;;;;;;;8135:72;8341:23;:17;-1:-1:-1;;;;;8341:21:186;;;;;;:23;;:::i;:::-;-1:-1:-1;;;;;8313:51:186;8320:17;-1:-1:-1;;;;;8313:51:186;;8309:87;;;8373:23;;-1:-1:-1;;;8373:23:186;;;;;;;;;;;8309:87;-1:-1:-1;;;8445:21:186;;;;;;8476:37;;;;;-1:-1:-1;8523:30:186;;;;8563:25;;;;;-1:-1:-1;;;;;8598:33:186;;;;;8641:38;;;-1:-1:-1;;;;;8689:8:186;;;;;8707:12;;;;;8729:44;;;;;8783:24;;;;;3469:20:187;;::::1;;::::0;3499:24:::1;;::::0;-1:-1:-1;1187:4133:187;;-1:-1:-1;;;;;;;;;1187:4133:187;6529:145:198;6649:9;6529:145::o;413:105:74:-;471:7;502:1;497;:6;;:14;;510:1;497:14;;;506:1;497:14;490:21;413:105;-1:-1:-1;;;413:105:74:o;14:198:416:-;115:13;;-1:-1:-1;;;;;157:30:416;;147:41;;137:69;;202:1;199;192:12;137:69;14:198;;;:::o;217:144::-;-1:-1:-1;;;;;305:31:416;;295:42;;285:70;;351:1;348;341:12;285:70;217:144;:::o;366:164::-;458:13;;480:44;458:13;480:44;:::i;535:1439::-;901:6;909;917;925;933;941;949;957;965;973;981:7;990;1044:3;1032:9;1023:7;1019:23;1015:33;1012:53;;;1061:1;1058;1051:12;1012:53;1093:9;1087:16;1143:10;1136:5;1132:22;1125:5;1122:33;1112:61;;1169:1;1166;1159:12;1112:61;1192:5;1182:15;;;1237:2;1226:9;1222:18;1216:25;1206:35;;1281:2;1270:9;1266:18;1260:25;1250:35;;1325:2;1314:9;1310:18;1304:25;1294:35;;1348:72;1415:3;1404:9;1400:19;1348:72;:::i;:::-;1338:82;;1439:72;1506:3;1495:9;1491:19;1439:72;:::i;:::-;1429:82;;1530:63;1588:3;1577:9;1573:19;1530:63;:::i;:::-;1520:73;;1612:63;1670:3;1659:9;1655:19;1612:63;:::i;:::-;1602:73;;1694:63;1752:3;1741:9;1737:19;1694:63;:::i;:::-;1684:73;;1797:3;1786:9;1782:19;1776:26;1766:36;;1822:63;1880:3;1869:9;1865:19;1822:63;:::i;:::-;1811:74;;1905:63;1963:3;1952:9;1948:19;1905:63;:::i;:::-;1894:74;;535:1439;;;;;;;;;;;;;;:::o;1979:127::-;2040:10;2035:3;2031:20;2028:1;2021:31;2071:4;2068:1;2061:15;2095:4;2092:1;2085:15;2111:195;2149:4;2186;2183:1;2179:12;2218:4;2215:1;2211:12;2243:3;2238;2235:12;2232:38;;;2250:18;;:::i;:::-;2287:13;;;2111:195;-1:-1:-1;;;2111:195:416:o;2311:128::-;2351:3;2382:1;2378:6;2375:1;2372:13;2369:39;;;2388:18;;:::i;:::-;-1:-1:-1;2424:9:416;;2311:128::o;2444:290::-;2540:6;2593:2;2581:9;2572:7;2568:23;2564:32;2561:52;;;2609:1;2606;2599:12;2561:52;2641:9;2635:16;2660:44;2698:5;2660:44;:::i;2739:184::-;2809:6;2862:2;2850:9;2841:7;2837:23;2833:32;2830:52;;;2878:1;2875;2868:12;2830:52;-1:-1:-1;2901:16:416;;2739:184;-1:-1:-1;2739:184:416:o;2928:168::-;2968:7;3034:1;3030;3026:6;3022:14;3019:1;3016:21;3011:1;3004:9;2997:17;2993:45;2990:71;;;3041:18;;:::i;:::-;-1:-1:-1;3081:9:416;;2928:168::o;:::-;1187:4133:187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106103085760003560e01c806370872aa51161019a578063c6f0308c116100e1578063ec5e63081161008a578063fa24f74311610064578063fa24f74314610b94578063fa315aa914610bb8578063fe2bbeb214610beb57600080fd5b8063ec5e630814610b11578063eff0f59214610b44578063f8f43ff614610b7457600080fd5b8063d6ae3cd5116100bb578063d6ae3cd514610a8b578063d8cc1a3c14610abe578063dabd396d14610ade57600080fd5b8063c6f0308c146109b3578063cf09e0d014610a3d578063d5d44d8014610a5e57600080fd5b8063a445ece611610143578063bcef3b551161011d578063bcef3b5514610933578063bd8da95614610973578063c395e1ca1461099357600080fd5b8063a445ece6146107f3578063a8e4fb90146108bf578063bbdc02db146108f257600080fd5b80638980e0cc116101745780638980e0cc1461076b5780638b85902b146107805780638d450a95146107c057600080fd5b806370872aa51461073b5780637b0f0adc146107505780638129fc1c1461076357600080fd5b80633fc8cef31161025e5780635c0cba33116102075780636361506d116101e15780636361506d146106b55780636b6716c0146106f55780636f0344091461072857600080fd5b80635c0cba331461064d578063609d33341461068057806360e274641461069557600080fd5b806354fd4d501161023857806354fd4d50146105a757806357da950e146105fd5780635a5fa2d91461062d57600080fd5b80633fc8cef31461052e578063472777c614610561578063534db0e21461057457600080fd5b80632810e1d6116102c057806337b1b2291161029a57806337b1b2291461047b5780633a768463146104bb5780633e3ac912146104ee57600080fd5b80632810e1d6146103f45780632ad69aeb1461040957806330dbe5701461042957600080fd5b806319effeb4116102f157806319effeb41461034f578063200d2ed21461039a57806325fc2ace146103d557600080fd5b8063019351301461030d57806303c2924d1461032f575b600080fd5b34801561031957600080fd5b5061032d61032836600461575d565b610c1b565b005b34801561033b57600080fd5b5061032d61034a3660046157b8565b610f3c565b34801561035b57600080fd5b5060005461037c9068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156103a657600080fd5b506000546103c890700100000000000000000000000000000000900460ff1681565b6040516103919190615809565b3480156103e157600080fd5b506008545b604051908152602001610391565b34801561040057600080fd5b506103c86115e2565b34801561041557600080fd5b506103e66104243660046157b8565b611887565b34801561043557600080fd5b506001546104569073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610391565b34801561048757600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560601c610456565b3480156104c757600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610456565b3480156104fa57600080fd5b5060005461051e907201000000000000000000000000000000000000900460ff1681565b6040519015158152602001610391565b34801561053a57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610456565b61032d61056f36600461584a565b6118bd565b34801561058057600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610456565b3480156105b357600080fd5b506105f06040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b60405161039191906158e1565b34801561060957600080fd5b50600854600954610618919082565b60408051928352602083019190915201610391565b34801561063957600080fd5b506103e66106483660046158f4565b6118cf565b34801561065957600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610456565b34801561068c57600080fd5b506105f0611909565b3480156106a157600080fd5b5061032d6106b0366004615932565b611917565b3480156106c157600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003603401356103e6565b34801561070157600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061037c565b61032d610736366004615964565b611abe565b34801561074757600080fd5b506009546103e6565b61032d61075e36600461584a565b611b7f565b61032d611b8c565b34801561077757600080fd5b506002546103e6565b34801561078c57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003605401356103e6565b3480156107cc57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103e6565b3480156107ff57600080fd5b5061086b61080e3660046158f4565b6007602052600090815260409020805460019091015460ff821691610100810463ffffffff1691650100000000009091046fffffffffffffffffffffffffffffffff169073ffffffffffffffffffffffffffffffffffffffff1684565b60408051941515855263ffffffff90931660208501526fffffffffffffffffffffffffffffffff9091169183019190915273ffffffffffffffffffffffffffffffffffffffff166060820152608001610391565b3480156108cb57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610456565b3480156108fe57600080fd5b5060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610391565b34801561093f57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003601401356103e6565b34801561097f57600080fd5b5061037c61098e3660046158f4565b611c05565b34801561099f57600080fd5b506103e66109ae3660046159a3565b611de4565b3480156109bf57600080fd5b506109d36109ce3660046158f4565b611fc7565b6040805163ffffffff909816885273ffffffffffffffffffffffffffffffffffffffff968716602089015295909416948601949094526fffffffffffffffffffffffffffffffff9182166060860152608085015291821660a08401521660c082015260e001610391565b348015610a4957600080fd5b5060005461037c9067ffffffffffffffff1681565b348015610a6a57600080fd5b506103e6610a79366004615932565b60036020526000908152604090205481565b348015610a9757600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103e6565b348015610aca57600080fd5b5061032d610ad93660046159d5565b61205e565b348015610aea57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061037c565b348015610b1d57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103e6565b348015610b5057600080fd5b5061051e610b5f3660046158f4565b60046020526000908152604090205460ff1681565b348015610b8057600080fd5b5061032d610b8f36600461584a565b612123565b348015610ba057600080fd5b50610ba96125e0565b60405161039193929190615a5f565b348015610bc457600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103e6565b348015610bf757600080fd5b5061051e610c063660046158f4565b60066020526000908152604090205460ff1681565b60008054700100000000000000000000000000000000900460ff166002811115610c4757610c476157da565b14610c7e576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000547201000000000000000000000000000000000000900460ff1615610cd1576040517f0ea2e75200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d08367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036014013590565b90565b610d1f610d1a36869003860186615ab3565b61265b565b14610d56576040517f9cc00b5b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82606001358282604051610d6b929190615b40565b604051809103902014610daa576040517fd81d583b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610df3610dee84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506126b792505050565b612724565b90506000610e1a82600881518110610e0d57610e0d615b50565b60200260200101516128da565b9050602081511115610e58576040517fd81d583b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081810151825190910360031b1c367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003605401358103610ecd576040517fb8ed883000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050600180547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790555050600080547fffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff1672010000000000000000000000000000000000001790555050565b60008054700100000000000000000000000000000000900460ff166002811115610f6857610f686157da565b14610f9f576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028381548110610fb457610fb4615b50565b906000526020600020906005020190506000610fcf84611c05565b905067ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081169082161015611038576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008481526006602052604090205460ff1615611081576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600084815260056020526040902080548015801561109e57508515155b15611139578354640100000000900473ffffffffffffffffffffffffffffffffffffffff16600081156110d157816110ed565b600186015473ffffffffffffffffffffffffffffffffffffffff165b90506110f9818761298e565b50505060009485525050600660205250506040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6000868152600760209081526040918290208251608081018452815460ff81161515808352610100820463ffffffff16948301949094526501000000000090046fffffffffffffffffffffffffffffffff16938101939093526001015473ffffffffffffffffffffffffffffffffffffffff1660608301526111dc576fffffffffffffffffffffffffffffffff60408201526001815260008690036111dc578195505b600086826020015163ffffffff166111f49190615bae565b905060008382116112055781611207565b835b602084015190915063ffffffff165b8181101561135357600086828154811061123257611232615b50565b6000918252602080832090910154808352600690915260409091205490915060ff1661128a576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006002828154811061129f5761129f615b50565b600091825260209091206005909102018054909150640100000000900473ffffffffffffffffffffffffffffffffffffffff161580156112fc5750600481015460408701516fffffffffffffffffffffffffffffffff9182169116115b1561133e57600181015473ffffffffffffffffffffffffffffffffffffffff16606087015260048101546fffffffffffffffffffffffffffffffff1660408701525b5050808061134b90615bc6565b915050611216565b5063ffffffff818116602085810191825260008c81526007909152604090819020865181549351928801517fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009094169015157fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff161761010092909416918202939093177fffffffffffffffffffffff00000000000000000000000000000000ffffffffff16650100000000006fffffffffffffffffffffffffffffffff909316929092029190911782556060850151600190920180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909316929092179091558490036115d757606083015160008a815260066020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055891580156114d357506000547201000000000000000000000000000000000000900460ff165b156115485760015473ffffffffffffffffffffffffffffffffffffffff166114fb818a61298e565b885473ffffffffffffffffffffffffffffffffffffffff909116640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff9091161788556115d5565b61158f73ffffffffffffffffffffffffffffffffffffffff82161561156d5781611589565b600189015473ffffffffffffffffffffffffffffffffffffffff165b8961298e565b87547fffffffffffffffff0000000000000000000000000000000000000000ffffffff1664010000000073ffffffffffffffffffffffffffffffffffffffff8316021788555b505b505050505050505050565b600080600054700100000000000000000000000000000000900460ff166002811115611610576116106157da565b14611647576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85460ff166116ab576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660026000815481106116d7576116d7615b50565b6000918252602090912060059091020154640100000000900473ffffffffffffffffffffffffffffffffffffffff1614611712576001611715565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff909116177001000000000000000000000000000000008360028111156117c6576117c66157da565b0217905560028111156117db576117db6157da565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a27f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663838c2d1e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561186c57600080fd5b505af1158015611880573d6000803e3d6000fd5b5050505090565b600560205281600052604060002081815481106118a357600080fd5b90600052602060002001600091509150505481565b905090565b6118ca8383836001611abe565b505050565b6000818152600760209081526040808320600590925282208054825461190090610100900463ffffffff1682615bfe565b95945050505050565b60606118b860546020612a8f565b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604081208054908290559081900361197c576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063f3fef3a390604401600060405180830381600087803b158015611a0c57600080fd5b505af1158015611a20573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114611a7e576040519150601f19603f3d011682016040523d82523d6000602084013e611a83565b606091505b50509050806118ca576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161480611b3757503373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016145b611b6d576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b7984848484612ae1565b50505050565b6118ca8383836000611abe565b3273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611bfb576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c036135ba565b565b600080600054700100000000000000000000000000000000900460ff166002811115611c3357611c336157da565b14611c6a576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028381548110611c7f57611c7f615b50565b600091825260208220600590910201805490925063ffffffff90811614611cee57815460028054909163ffffffff16908110611cbd57611cbd615b50565b906000526020600020906005020160040160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b6004820154600090611d2690700100000000000000000000000000000000900467ffffffffffffffff165b67ffffffffffffffff1690565b611d3a9067ffffffffffffffff1642615bfe565b611d59611d19846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16611d6d9190615bae565b905067ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff1611611dba5780611900565b7f000000000000000000000000000000000000000000000000000000000000000095945050505050565b600080611e83836fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690507f0000000000000000000000000000000000000000000000000000000000000000811115611ee2576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b642e90edd00062061a806311e1a3006000611efd8383615c44565b9050670de0b6b3a76400006000611f34827f0000000000000000000000000000000000000000000000000000000000000000615c58565b90506000611f52611f4d670de0b6b3a764000086615c58565b613b13565b90506000611f608484613d6e565b90506000611f6e8383613dbd565b90506000611f7b82613deb565b90506000611f9a82611f95670de0b6b3a76400008f615c58565b613fd3565b90506000611fa88b83613dbd565b9050611fb4818d615c58565b9f9e505050505050505050505050505050565b60028181548110611fd757600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff8416955064010000000090930473ffffffffffffffffffffffffffffffffffffffff908116949216926fffffffffffffffffffffffffffffffff91821692918082169170010000000000000000000000000000000090041687565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614806120d757503373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016145b61210d576040517fd386ef3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61211b868686868686614004565b505050505050565b60008054700100000000000000000000000000000000900460ff16600281111561214f5761214f6157da565b14612186576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060008061219586614633565b935093509350935060006121ab85858585614a3c565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561221a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223e9190615c95565b9050600189036123365773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8461229a367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036034013590565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af115801561230c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123309190615cb2565b506115d7565b600289036123625773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a848961229a565b6003890361238e5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a848761229a565b600489036125155760006123d46fffffffffffffffffffffffffffffffff85167f0000000000000000000000000000000000000000000000000000000000000000614af6565b6009546123e19190615bae565b6123ec906001615bae565b9050367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360540135811061245557367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360540135612457565b805b905073ffffffffffffffffffffffffffffffffffffffff82166352f0f3ad8b8560405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681526004810192909252602482015260c084901b604482015260086064820152608481018b905260a4016020604051808303816000875af11580156124ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250e9190615cb2565b50506115d7565b600589036125ae576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a9052602481018390527f000000000000000000000000000000000000000000000000000000000000000060c01b6044820152600860648201526084810188905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a4016122ed565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003601401356060612639611909565b9050909192565b6000818310156126505781612652565b825b90505b92915050565b6000816000015182602001518360400151846060015160405160200161269a949392919093845260208401929092526040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60408051808201909152600080825260208201528151600003612706576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b6060600080600061273485614ba4565b91945092509050600181600181111561274f5761274f6157da565b14612786576040517f4b9c6abe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84516127928385615bae565b146127c9576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516020808252610420820190925290816020015b60408051808201909152600080825260208201528152602001906001900390816127e05790505093506000835b86518110156128ce576000806128536040518060400160405280858c600001516128379190615bfe565b8152602001858c6020015161284c9190615bae565b9052614ba4565b50915091506040518060400160405280838361286f9190615bae565b8152602001848b602001516128849190615bae565b81525088858151811061289957612899615b50565b60209081029190910101526128af600185615bae565b93506128bb8183615bae565b6128c59084615bae565b9250505061280d565b50845250919392505050565b606060008060006128ea85614ba4565b919450925090506000816001811115612905576129056157da565b1461293c576040517f1ff9b2e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129468284615bae565b85511461297f576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61190085602001518484615042565b600281015473ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040812080546fffffffffffffffffffffffffffffffff909316928392906129dd908490615bae565b90915550506040517f7eee288d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018390527f00000000000000000000000000000000000000000000000000000000000000001690637eee288d90604401600060405180830381600087803b158015612a7257600080fd5b505af1158015612a86573d6000803e3d6000fd5b50505050505050565b604051818152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b60008054700100000000000000000000000000000000900460ff166002811115612b0d57612b0d6157da565b14612b44576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028481548110612b5957612b59615b50565b60009182526020918290206040805160e0810182526005909302909101805463ffffffff8116845273ffffffffffffffffffffffffffffffffffffffff64010000000090910481169484019490945260018101549093169082015260028201546fffffffffffffffffffffffffffffffff908116606083015260038301546080830181905260049093015480821660a084015270010000000000000000000000000000000090041660c082015291508514612c40576040517f3014033200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60a0810151600083156fffffffffffffffffffffffffffffffff83161760011b90506000612d00826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050861580612d3b5750612d387f00000000000000000000000000000000000000000000000000000000000000006002615bae565b81145b8015612d45575084155b15612d7c576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000547201000000000000000000000000000000000000900460ff168015612da2575086155b15612dd9576040517f0ea2e75200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115612e33576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612e5e7f00000000000000000000000000000000000000000000000000000000000000006001615bae565b8103612e7057612e70868885886150d7565b34612e7a83611de4565b14612eb1576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612ebc88611c05565b905067ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811690821603612f24576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612f5160017f0000000000000000000000000000000000000000000000000000000000000000615bfe565b830361308f577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fe69190615c95565b73ffffffffffffffffffffffffffffffffffffffff1663f3f480d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015613030573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130549190615cb2565b613088907f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615ccb565b9050613122565b6130ba60017f0000000000000000000000000000000000000000000000000000000000000000615bfe565b83036130f5576130887f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166002615cf7565b507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff165b613156817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615d27565b67ffffffffffffffff166131718367ffffffffffffffff1690565b67ffffffffffffffff1611156131b8576131b5817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16615d27565b91505b6000604083901b421760008a8152608087901b6fffffffffffffffffffffffffffffffff8d1617602052604081209192509060008181526004602052604090205490915060ff1615613236576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016004600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060026040518060e001604052808d63ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001346fffffffffffffffffffffffffffffffff1681526020018c8152602001886fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506080820151816003015560a08201518160040160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060c08201518160040160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050600560008c815260200190815260200160002060016002805490506134cc9190615bfe565b81546001810183556000928352602083200155604080517fd0e30db0000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169263d0e30db09234926004808301939282900301818588803b15801561356457600080fd5b505af1158015613578573d6000803e3d6000fd5b50506040513393508d92508e91507f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be90600090a4505050505050505050505050565b60005471010000000000000000000000000000000000900460ff161561360c576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f7258a80700000000000000000000000000000000000000000000000000000000815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166004820152600090819073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690637258a807906024016040805180830381865afa1580156136c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136e49190615d50565b909250905081613720576040517f6a6bc3b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080518082019091528281526020018190526008829055600981905536607a1461375357639824bdab6000526004601cfd5b80367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360540135116137ed576040517ff40239db000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036014013560048201526024015b60405180910390fd5b6040805160e08101825263ffffffff8082526000602083018181527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90038035606090811c868801908152346fffffffffffffffffffffffffffffffff81811693890193845260149094013560808901908152600160a08a0181815242871660c08c019081526002805493840181558a529a5160059092027f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace81018054995173ffffffffffffffffffffffffffffffffffffffff908116640100000000027fffffffffffffffff000000000000000000000000000000000000000000000000909b1694909c16939093179890981790915592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf87018054918a167fffffffffffffffffffffffff000000000000000000000000000000000000000090921691909117905592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0860180549186167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090921691909117905591517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad185015551955182167001000000000000000000000000000000000295909116949094177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad29091015580547fffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff167101000000000000000000000000000000000017815583517fd0e30db000000000000000000000000000000000000000000000000000000000815293517f00000000000000000000000000000000000000000000000000000000000000009092169363d0e30db093926004828101939282900301818588803b158015613ac257600080fd5b505af1158015613ad6573d6000803e3d6000fd5b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555050505050565b6fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1760008213613b7257631615e6386000526004601cfd5b7ff8f9f9faf9fdfafbf9fdfcfdfafbfcfef9fafdfafcfcfbfefafafcfbffffffff6f8421084210842108cc6318c6db6d54be83831c1c601f161a1890811b609f90811c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506029190037d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d90565b60007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218311670de0b6b3a764000002158202613dab57637c5f487d6000526004601cfd5b50670de0b6b3a7640000919091020490565b600081600019048311820215613ddb5763bac65e5b6000526004601cfd5b50670de0b6b3a764000091020490565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdc0d0570925a462d78213613e1957919050565b680755bf798b4a1bf1e58212613e375763a37bfec96000526004601cfd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b6000612652670de0b6b3a764000083613feb86613b13565b613ff59190615d74565b613fff9190615e30565b613deb565b60008054700100000000000000000000000000000000900460ff166002811115614030576140306157da565b14614067576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006002878154811061407c5761407c615b50565b6000918252602082206005919091020160048101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506140db7f00000000000000000000000000000000000000000000000000000000000000006001615bae565b614177826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16146141b1576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008089156142a8576142047f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000615bfe565b6001901b614223846fffffffffffffffffffffffffffffffff16615288565b6fffffffffffffffffffffffffffffffff1661423f9190615e98565b1561427c5761427361426460016fffffffffffffffffffffffffffffffff8716615eac565b865463ffffffff166000615327565b6003015461429e565b7f00000000000000000000000000000000000000000000000000000000000000005b91508490506142d2565b600385015491506142cf6142646fffffffffffffffffffffffffffffffff86166001615ed5565b90505b600882901b60088a8a6040516142e9929190615b40565b6040518091039020901b1461432a576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006143358c61540b565b90506000614344836003015490565b6040517fe14ced320000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e14ced32906143be908f908f908f908f908a90600401615f49565b6020604051808303816000875af11580156143dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144019190615cb2565b6004850154911491506000906002906144ac906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b614548896fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6145529190615f83565b61455c9190615fa6565b60ff16159050811515810361459d576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8754640100000000900473ffffffffffffffffffffffffffffffffffffffff16156145f4576040517f9071e6af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b600080600080600085905060006002828154811061465357614653615b50565b600091825260209091206004600590920201908101549091507f00000000000000000000000000000000000000000000000000000000000000009061472a906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611614764576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f00000000000000000000000000000000000000000000000000000000000000009061482b906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1692508211156148a057825463ffffffff1661486a7f00000000000000000000000000000000000000000000000000000000000000006001615bae565b8303614874578391505b6002818154811061488757614887615b50565b9060005260206000209060050201935080945050614768565b600481810154908401546fffffffffffffffffffffffffffffffff91821691166000816fffffffffffffffffffffffffffffffff166149096148f4856fffffffffffffffffffffffffffffffff1660011c90565b6fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff1614905080156149d8576000614941836fffffffffffffffffffffffffffffffff16615288565b6fffffffffffffffffffffffffffffffff1611156149ac57600061498361497b60016fffffffffffffffffffffffffffffffff8616615eac565b896001615327565b6003810154600490910154909c506fffffffffffffffffffffffffffffffff169a506149b29050565b6008549a505b600386015460048701549099506fffffffffffffffffffffffffffffffff169750614a2e565b60006149fa61497b6fffffffffffffffffffffffffffffffff85166001615ed5565b6003808901546004808b015492840154930154909e506fffffffffffffffffffffffffffffffff9182169d50919b50169850505b505050505050509193509193565b60006fffffffffffffffffffffffffffffffff841615614aa95760408051602081018790526fffffffffffffffffffffffffffffffff8087169282019290925260608101859052908316608082015260a00160405160208183030381529060405280519060200120611900565b8282604051602001614ad79291909182526fffffffffffffffffffffffffffffffff16602082015260400190565b6040516020818303038152906040528051906020012095945050505050565b600080614b83847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690508083036001841b600180831b0386831b17039250505092915050565b60008060008360000151600003614be7576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020840151805160001a607f8111614c0c57600060016000945094509450505061503b565b60b78111614d22576000614c21608083615bfe565b905080876000015111614c60576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001838101517fff00000000000000000000000000000000000000000000000000000000000000169082148015614cd857507f80000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216105b15614d0f576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506001955093506000925061503b915050565b60bf8111614e80576000614d3760b783615bfe565b905080876000015111614d76576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003614dd8576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111614e20576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614e2a8184615bae565b895111614e63576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614e6e836001615bae565b975095506000945061503b9350505050565b60f78111614ee5576000614e9560c083615bfe565b905080876000015111614ed4576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60019550935084925061503b915050565b6000614ef260f783615bfe565b905080876000015111614f31576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003614f93576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111614fdb576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614fe58184615bae565b89511161501e576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b615029836001615bae565b975095506001945061503b9350505050565b9193909250565b60608167ffffffffffffffff81111561505d5761505d615a84565b6040519080825280601f01601f191660200182016040528015615087576020820181803683370190505b50905081156150d057600061509c8486615bae565b90506020820160005b848110156150bd5782810151828201526020016150a5565b848111156150cc576000858301525b5050505b9392505050565b60006150f66fffffffffffffffffffffffffffffffff84166001615ed5565b9050600061510682866001615327565b9050600086901a83806151f2575061513f60027f0000000000000000000000000000000000000000000000000000000000000000615e98565b60048301546002906151e3906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6151ed9190615fa6565b60ff16145b1561524a5760ff81166001148061520c575060ff81166002145b615245576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016137e4565b612a86565b60ff811615612a86576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016137e4565b600080615315837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600160ff919091161b90920392915050565b600080826153705761536b6fffffffffffffffffffffffffffffffff86167f000000000000000000000000000000000000000000000000000000000000000061543a565b61538b565b61538b856fffffffffffffffffffffffffffffffff166155c6565b9050600284815481106153a0576153a0615b50565b906000526020600020906005020191505b60048201546fffffffffffffffffffffffffffffffff82811691161461540357815460028054909163ffffffff169081106153ee576153ee615b50565b906000526020600020906005020191506153b1565b509392505050565b600080600080600061541c86614633565b935093509350935061543084848484614a3c565b9695505050505050565b6000816154d9846fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff16116154ef5763b34b5c226000526004601cfd5b6154f8836155c6565b905081615597826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611612655576126526155ad836001615bae565b6fffffffffffffffffffffffffffffffff83169061566b565b6000811960018301168161565a827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169390931c8015179392505050565b6000806156f8847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050808303600180821b0385821b179250505092915050565b60008083601f84011261572657600080fd5b50813567ffffffffffffffff81111561573e57600080fd5b60208301915083602082850101111561575657600080fd5b9250929050565b600080600083850360a081121561577357600080fd5b608081121561578157600080fd5b50839250608084013567ffffffffffffffff81111561579f57600080fd5b6157ab86828701615714565b9497909650939450505050565b600080604083850312156157cb57600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6020810160038310615844577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b60008060006060848603121561585f57600080fd5b505081359360208301359350604090920135919050565b6000815180845260005b8181101561589c57602081850181015186830182015201615880565b818111156158ae576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006126526020830184615876565b60006020828403121561590657600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461592f57600080fd5b50565b60006020828403121561594457600080fd5b81356150d08161590d565b8035801515811461595f57600080fd5b919050565b6000806000806080858703121561597a57600080fd5b8435935060208501359250604085013591506159986060860161594f565b905092959194509250565b6000602082840312156159b557600080fd5b81356fffffffffffffffffffffffffffffffff811681146150d057600080fd5b600080600080600080608087890312156159ee57600080fd5b863595506159fe6020880161594f565b9450604087013567ffffffffffffffff80821115615a1b57600080fd5b615a278a838b01615714565b90965094506060890135915080821115615a4057600080fd5b50615a4d89828a01615714565b979a9699509497509295939492505050565b63ffffffff841681528260208201526060604082015260006119006060830184615876565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060808284031215615ac557600080fd5b6040516080810181811067ffffffffffffffff82111715615b0f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115615bc157615bc1615b7f565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615bf757615bf7615b7f565b5060010190565b600082821015615c1057615c10615b7f565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082615c5357615c53615c15565b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615615c9057615c90615b7f565b500290565b600060208284031215615ca757600080fd5b81516150d08161590d565b600060208284031215615cc457600080fd5b5051919050565b600067ffffffffffffffff808316818516808303821115615cee57615cee615b7f565b01949350505050565b600067ffffffffffffffff80831681851681830481118215151615615d1e57615d1e615b7f565b02949350505050565b600067ffffffffffffffff83811690831681811015615d4857615d48615b7f565b039392505050565b60008060408385031215615d6357600080fd5b505080516020909101519092909150565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615615db557615db5615b7f565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615615df057615df0615b7f565b60008712925087820587128484161615615e0c57615e0c615b7f565b87850587128184161615615e2257615e22615b7f565b505050929093029392505050565b600082615e3f57615e3f615c15565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615615e9357615e93615b7f565b500590565b600082615ea757615ea7615c15565b500690565b60006fffffffffffffffffffffffffffffffff83811690831681811015615d4857615d48615b7f565b60006fffffffffffffffffffffffffffffffff808316818516808303821115615cee57615cee615b7f565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b606081526000615f5d606083018789615f00565b8281036020840152615f70818688615f00565b9150508260408301529695505050505050565b600060ff821660ff841680821015615f9d57615f9d615b7f565b90039392505050565b600060ff831680615fb957615fb9615c15565b8060ff8416069150509291505056fea164736f6c634300080f000a","sourceMap":"1187:4133:187:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26925:2125:186;;;;;;;;;;-1:-1:-1;26925:2125:186;;;;;:::i;:::-;;:::i;:::-;;30246:5904;;;;;;;;;;-1:-1:-1;30246:5904:186;;;;;:::i;:::-;;:::i;3588:27::-;;;;;;;;;;-1:-1:-1;3588:27:186;;;;;;;;;;;;;;1395:18:416;1383:31;;;1365:50;;1353:2;1338:18;3588:27:186;;;;;;;;3655:24;;;;;;;;;;-1:-1:-1;3655:24:186;;;;;;;;;;;;;;;;;;:::i;26432:135::-;;;;;;;;;;-1:-1:-1;26537:18:186;:23;26432:135;;;2195:25:416;;;2183:2;2168:18;26432:135:186;2022:204:416;29297:905:186;;;;;;;;;;;;;:::i;4677:45::-;;;;;;;;;;-1:-1:-1;4677:45:186;;;;;:::i;:::-;;:::i;4184:38::-;;;;;;;;;;-1:-1:-1;4184:38:186;;;;;;;;;;;2589:42:416;2577:55;;;2559:74;;2547:2;2532:18;4184:38:186;2413:226:416;36336:110:186;;;;;;;;;;-1:-1:-1;14565:14:102;14561:22;;;14548:36;14543:3;14539:46;14519:67;;1993:36;1989:2;1985:45;36336:110:186;;43339:79;;;;;;;;;;-1:-1:-1;43409:2:186;43339:79;;3914:35;;;;;;;;;;-1:-1:-1;3914:35:186;;;;;;;;;;;;;;3062:14:416;;3055:22;3037:41;;3025:2;3010:18;3914:35:186;2897:187:416;43483:88:186;;;;;;;;;;-1:-1:-1;43560:4:186;43483:88;;22996:146;;;;;;:::i;:::-;;:::i;5211:107:187:-;;;;;;;;;;-1:-1:-1;5301:10:187;5211:107;;3394:40:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5096:36::-;;;;;;;;;;-1:-1:-1;5096:36:186;;;;;;;;;;;;;4682:25:416;;;4738:2;4723:18;;4716:34;;;;4655:18;5096:36:186;4481:275:416;25618:402:186;;;;;;;;;;-1:-1:-1;25618:402:186;;;;;:::i;:::-;;:::i;43637:136::-;;;;;;;;;;-1:-1:-1;43745:21:186;43637:136;;36796:231;;;;;;;;;;;;;:::i;40014:647::-;;;;;;;;;;-1:-1:-1;40014:647:186;;;;;:::i;:::-;;:::i;36646:111::-;;;;;;;;;;-1:-1:-1;14565:14:102;14561:22;;;14548:36;14543:3;14539:46;14519:67;;36744:4:186;3514:22:102;3501:36;36646:111:186;36336:110;43161:125;;;;;;;;;;-1:-1:-1;43264:15:186;43161:125;;4241:273:187;;;;;;:::i;:::-;;:::i;26232:156:186:-;;;;;;;;;;-1:-1:-1;26349:32:186;;26232:156;;23186:147;;;;;;:::i;:::-;;:::i;4555:243:187:-;;;:::i;42074:101:186:-;;;;;;;;;;-1:-1:-1;42152:9:186;:16;42074:101;;26064:124;;;;;;;;;;-1:-1:-1;14565:14:102;14561:22;;;14548:36;14543:3;14539:46;14519:67;;26176:4:186;3514:22:102;3501:36;26064:124:186;36336:110;42461:130;;;;;;;;;;-1:-1:-1;42567:17:186;42461:130;;4926:69;;;;;;;;;;-1:-1:-1;4926:69:186;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7179:14:416;;7172:22;7154:41;;7243:10;7231:23;;;7226:2;7211:18;;7204:51;7303:34;7291:47;;;7271:18;;;7264:75;;;;7387:42;7375:55;7370:2;7355:18;;7348:83;7141:3;7126:19;4926:69:186;6900:537:416;5058:99:187;;;;;;;;;;-1:-1:-1;5142:8:187;5058:99;;36189:108:186;;;;;;;;;;-1:-1:-1;36189:108:186;;7648:10:416;36281:9:186;7636:23:416;7618:42;;7606:2;7591:18;36189:108:186;7442:224:416;36485:122:186;;;;;;;;;;-1:-1:-1;14565:14:102;14561:22;;;14548:36;14543:3;14539:46;14519:67;;36594:4:186;3514:22:102;3501:36;36485:122:186;36336:110;40996:1011;;;;;;;;;;-1:-1:-1;40996:1011:186;;;;;:::i;:::-;;:::i;37703:2171::-;;;;;;;;;;-1:-1:-1;37703:2171:186;;;;;:::i;:::-;;:::i;4310:28::-;;;;;;;;;;-1:-1:-1;4310:28:186;;;;;:::i;:::-;;:::i;:::-;;;;8438:10:416;8426:23;;;8408:42;;8469;8547:15;;;8542:2;8527:18;;8520:43;8599:15;;;;8579:18;;;8572:43;;;;8634:34;8704:15;;;8699:2;8684:18;;8677:43;8751:3;8736:19;;8729:35;8801:15;;;8795:3;8780:19;;8773:44;8854:15;8848:3;8833:19;;8826:44;8395:3;8380:19;4310:28:186;8008:868:416;3492:26:186;;;;;;;;;;-1:-1:-1;3492:26:186;;;;;;;;4405:41;;;;;;;;;;-1:-1:-1;4405:41:186;;;;;:::i;:::-;;;;;;;;;;;;;;43862:105;;;;;;;;;;-1:-1:-1;43949:11:186;43862:105;;3574:269:187;;;;;;;;;;-1:-1:-1;3574:269:187;;;;;:::i;:::-;;:::i;42967:134:186:-;;;;;;;;;;-1:-1:-1;43076:18:186;42967:134;;42805:108;;;;;;;;;;-1:-1:-1;42895:11:186;42805:108;;4534:35;;;;;;;;;;-1:-1:-1;4534:35:186;;;;;:::i;:::-;;;;;;;;;;;;;;;;23377:2197;;;;;;;;;;-1:-1:-1;23377:2197:186;;;;;:::i;:::-;;:::i;37066:213::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;42641:117::-;;;;;;;;;;-1:-1:-1;42737:14:186;42641:117;;4801:48;;;;;;;;;;-1:-1:-1;4801:48:186;;;;;:::i;:::-;;;;;;;;;;;;;;;;26925:2125;27183:22;27173:6;;;;;;;:32;;;;;;;;:::i;:::-;;27169:64;;27214:19;;;;;;;;;;;;;;27169:64;27312:23;;;;;;;27308:61;;;27344:25;;;;;;;;;;;;;;27308:61;27477:17;14565:14:102;14561:22;;;14548:36;14543:3;14539:46;14519:67;;36594:4:186;3514:22:102;3501:36;6649:9:198;6529:145;27477:11:186;6649:9:198;6529:145;27477:17:186;27428:45;;;;;;;;27456:16;27428:45;:::i;:::-;:27;:45::i;:::-;:66;27424:103;;27503:24;;;;;;;;;;;;;;27424:103;27610:16;:32;;;27595:10;;27585:21;;;;;;;:::i;:::-;;;;;;;;:57;27581:88;;27651:18;;;;;;;;;;;;;;27581:88;27863:41;27907:51;27926:31;27946:10;;27926:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27926:19:186;;-1:-1:-1;;;27926:31:186:i;:::-;27907:18;:51::i;:::-;27863:95;;27968:27;27998:62;28018:14;3323:1;28018:41;;;;;;;;:::i;:::-;;;;;;;27998:19;:62::i;:::-;27968:92;;28155:2;28131:14;:21;:26;28127:57;;;28166:18;;;;;;;;;;;;;;28127:57;28607:4;28587:25;;;28581:32;28556:21;;28546:32;;;28540:4;28536:43;28532:82;14565:14:102;14561:22;;;14548:36;14543:3;14539:46;14519:67;;26176:4:186;3514:22:102;3501:36;28734:11:186;:30;28730:63;;28773:20;;;;;;;;;;;;;;28730:63;-1:-1:-1;;28967:23:186;:36;;;;28993:10;28967:36;;;-1:-1:-1;;28967:23:186;29013:30;;;;;;;;-1:-1:-1;;26925:2125:186:o;30246:5904::-;30433:22;30423:6;;;;;;;:32;;;;;;;;:::i;:::-;;30419:64;;30464:19;;;;;;;;;;;;;;30419:64;30494:34;30531:9;30541:11;30531:22;;;;;;;;:::i;:::-;;;;;;;;;;;30494:59;;30563:31;30597:34;30619:11;30597:21;:34::i;:::-;30563:68;-1:-1:-1;30942:22:186;:18;:22;;30911:26;;;:55;30907:85;;;30975:17;;;;;;;;;;;;;;30907:85;31061:29;;;;:16;:29;;;;;;;;31057:64;;;31099:22;;;;;;;;;;;;;;31057:64;31132:34;31169:21;;;:8;:21;;;;;31230:23;;31416:24;;:44;;;;-1:-1:-1;31444:16:186;;;31416:44;31412:805;;;31949:28;;;;;;;31927:19;32011:25;;:67;;32067:11;32011:67;;;32039:25;;;;;;32011:67;31991:87;;32092:44;32108:9;32119:16;32092:15;:44::i;:::-;-1:-1:-1;;;32150:29:186;;;;-1:-1:-1;;32150:16:186;:29;;-1:-1:-1;;32150:29:186;;;:36;;;;32182:4;32150:36;;;30246:5904::o;31412:805::-;32284:38;32325:34;;;:21;:34;;;;;;;;;32284:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32480:368;;32581:17;32537:27;;;:62;32652:4;32613:43;;:36;32782:18;;;32778:59;;32818:19;32802:35;;32778:59;32916:21;32966:13;32940:10;:23;;;:39;;;;;;:::i;:::-;32916:63;;32989:19;33027;33011:13;:35;:73;;33071:13;33011:73;;;33049:19;33011:73;33111:23;;;;32989:95;;-1:-1:-1;33099:35:186;;33094:1180;33140:11;33136:1;:15;33094:1180;;;33172:22;33197:16;33214:1;33197:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;33318:32;;;:16;:32;;;;;;;;33197:19;;-1:-1:-1;33318:32:186;;33313:68;;33359:22;;;;;;;;;;;;;;33313:68;33396:23;33422:9;33432:14;33422:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;34037:17;;33422:25;;-1:-1:-1;34037:17:186;;;:31;:17;:31;:91;;;;-1:-1:-1;34108:14:186;;;;34072:27;;;;34108:14;;;;34072:31;;:56;34037:91;34033:231;;;34173:14;;;;;;34148:22;;;:39;34235:14;;;;;;34205:27;;;:44;34033:231;33158:1116;;33153:3;;;;;:::i;:::-;;;;33094:1180;;;-1:-1:-1;34382:45:186;;;;:23;;;;:45;;;34574:34;;;;:21;:34;;;;;;;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34574:47:186;;;;;;;;;;;;;;;;;;34830:46;;;34826:1318;;34912:22;;;;34892:17;34994:29;;;:16;:29;;;;;:36;;;;35026:4;34994:36;;;35110:16;;:43;;;;-1:-1:-1;35130:23:186;;;;;;;35110:43;35106:1028;;;35387:23;;;;35428:45;35387:23;35456:16;35428:15;:45::i;:::-;35491:41;;;;;;;;;;;;;;;35106:1028;;;35785:98;35801:23;;;;:63;;35855:9;35801:63;;;35827:25;;;;;;35801:63;35866:16;35785:15;:98::i;:::-;36079:40;;;;;;;;;;;;35106:1028;34878:1266;34826:1318;30321:5829;;;;;;;30246:5904;;:::o;29297:905::-;29334:18;;29456:6;;;;;;;:32;;;;;;;;:::i;:::-;;29452:64;;29497:19;;;;;;;;;;;;;;29452:64;29630:19;;;:16;:19;;;;;;29625:55;;29658:22;;;;;;;;;;;;;;29625:55;29806:1;29770:38;;:9;29780:1;29770:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:24;;;;;;:38;:94;;29838:26;29770:94;;;29811:24;29770:94;29874:10;:52;;;29909:15;29874:52;;;;;;;;;;29760:104;;-1:-1:-1;29760:104:186;;30056:16;;;;;;;;29760:104;30056:16;;;;;;;;:::i;:::-;;;;;30047:26;;;;;;;;:::i;:::-;;;;;;;;30151:21;:42;;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29297:905;:::o;4677:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;36419:20::-;36408:31;;36336:110;:::o;22996:146::-;23092:43;23097:9;23108:12;23122:6;23130:4;23092;:43::i;:::-;22996:146;;;:::o;25618:402::-;25685:29;25768:34;;;:21;:34;;;;;;;;25849:8;:21;;;;;25910:23;;25990;;25968:45;;25990:23;;;;;25910;25968:45;:::i;:::-;25944:69;25618:402;-1:-1:-1;;;;;25618:402:186:o;36796:231::-;36838:23;36996:24;37009:4;37015;36996:12;:24::i;40014:647::-;40187:18;;;40161:23;40187:18;;;:6;:18;;;;;;;40215:22;;;;40187:18;40311:20;;;40307:50;;40340:17;;;;;;;;;;;;;;40307:50;40435:42;;;;;:13;13018:55:416;;;40435:42:186;;;13000:74:416;13090:18;;;13083:34;;;40435:4:186;:13;;;;12973:18:416;;40435:42:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40538:12;40555:10;:15;;40579;40555:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40537:66;;;40618:7;40613:41;;40634:20;;;;;;;;;;;;;;4241:273:187;1644:10;:22;1658:8;1644:22;;;:50;;-1:-1:-1;1670:10:187;:24;1684:10;1670:24;;1644:50;1638:100;;1718:9;;;;;;;;;;;;;;1638:100;4450:57:::1;4461:9;4472:15;4489:6;4497:9;4450:10;:57::i;:::-;4241:273:::0;;;;:::o;23186:147:186:-;23282:44;23287:9;23298:12;23312:6;23320:5;23282:4;:44::i;4555:243:187:-;4684:9;:21;4697:8;4684:21;;4680:43;;4714:9;;;;;;;;;;;;;;4680:43;4773:18;:16;:18::i;:::-;4555:243::o;40996:1011:186:-;41069:18;;41211:6;;;;;;;:32;;;;;;;;:::i;:::-;;41207:89;;41266:19;;;;;;;;;;;;;;41207:89;41347:34;41384:9;41394:11;41384:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;41519:28;;41384:22;;-1:-1:-1;41551:16:186;41519:28;;;:48;41515:138;;41607:28;;41597:9;:39;;:9;;41607:28;;;41597:39;;;;;;:::i;:::-;;;;;;;;;;;:45;;;;;;;;;;;;41583:59;;41515:138;41836:22;;;;41740:24;;41836:40;;:22;;;2484:28:198;;41836:34:186;:38;;6649:9:198;6529:145;41836:40:186;41818:58;;;;:15;:58;:::i;:::-;41786:28;:22;:11;:20;;1995:4:198;1991:17;;1773:251;41786:28:186;:91;;;;;;:::i;:::-;41740:138;-1:-1:-1;41920:22:186;:18;:22;41900:44;;:17;:44;;;:100;;41982:17;41900:100;;;41947:18;41888:112;40996:1011;-1:-1:-1;;;;;40996:1011:186:o;37703:2171::-;37769:21;37802:13;37826:17;:9;:15;;2582:66:197;2534:20;1856:18;1853:46;-1:-1:-1;1850:1:197;1846:54;1957:22;;;1945:10;1942:38;1939:1;1935:46;1924:58;2075:22;;;2141:1;2137:17;;;2123:32;2199:1;2195:17;;;2181:32;2257:1;2253:17;;;2239:32;2315:1;2311:17;;;2297:32;2373:2;2369:18;;;2355:33;2519:36;2514:3;2510:46;2480:190;2428:260;;1628:1076;37826:17:186;37818:26;;37802:42;;37866:14;37858:5;:22;37854:54;;;37889:19;;;;;;;;;;;;;;37854:54;37999:8;38042:7;38084:11;37974:22;38851:31;38042:7;38084:11;38851:31;:::i;:::-;38839:43;-1:-1:-1;2458:4:103;38892:9:186;38947:38;2458:4:103;38947:14:186;:38;:::i;:::-;38935:50;-1:-1:-1;39082:11:186;39104:58;39135:25;2458:4:103;39135:1:186;:25;:::i;:::-;39104:23;:58::i;:::-;39082:81;;39240:14;39257:30;39282:1;39285;39257:24;:30::i;:::-;39240:47;;39421:17;39441:37;39466:3;39471:6;39441:24;:37::i;:::-;39421:57;;39488:11;39502:43;39534:9;39502:24;:43::i;:::-;39488:57;-1:-1:-1;39600:13:186;39616:69;39488:57;39654:29;2458:4:103;39654:5:186;:29;:::i;:::-;39616:24;:69::i;:::-;39600:85;;39695:19;39717:57;39742:14;39766:6;39717:24;:57::i;:::-;39695:79;-1:-1:-1;39839:28:186;39695:79;39839:14;:28;:::i;:::-;39823:44;37703:2171;-1:-1:-1;;;;;;;;;;;;;;;37703:2171:186:o;4310:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4310:28:186;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3574:269:187:-;1644:10;:22;1658:8;1644:22;;;:50;;-1:-1:-1;1670:10:187;:24;1684:10;1670:24;;1644:50;1638:100;;1718:9;;;;;;;;;;;;;;1638:100;3782:54:::1;3793:11;3806:9;3817:10;;3829:6;;3782:10;:54::i;:::-;3574:269:::0;;;;;;:::o;23377:2197:186:-;23580:22;23570:6;;;;;;;:32;;;;;;;;:::i;:::-;;23566:64;;23611:19;;;;;;;;;;;;;;23566:64;23642:14;23658:20;23680:14;23696:20;23732:45;23764:12;23732:31;:45::i;:::-;23641:136;;;;;;;;23787:9;23799:66;23820:8;23830:11;23843:8;23853:11;23799:20;:66::i;:::-;23787:78;;23876:22;23901:2;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23876:36;;2426:4:199;23926:6:186;:39;23922:1646;;24018:20;;;;24039:6;24047:4;24059:14;14565::102;14561:22;;;14548:36;14543:3;14539:46;14519:67;;36744:4:186;3514:22:102;3501:36;6649:9:198;6529:145;24059:14:186;24018:73;;;;;;;;;;;;;14435:25:416;;;;14476:18;;;14469:34;;;;14519:18;;;14512:34;24075:2:186;14562:18:416;;;14555:34;14605:19;;;14598:35;;;14407:19;;24018:73:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23922:1646;;;2547:4:199;24112:6:186;:47;24108:1460;;24232:20;;;;24253:6;24261:4;24273:8;:14;6529:145:198;24108:1460:186;2668:4:199;24326:6:186;:47;24322:1246;;24445:20;;;;24466:6;24474:4;24486:8;:14;6529:145:198;24322:1246:186;2797:4:199;24539:6:186;:51;24535:1033;;24870:16;24924:35;:22;;;24947:11;24924:22;:35::i;:::-;24889:32;;:70;;;;:::i;:::-;:74;;24962:1;24889:74;:::i;:::-;24870:93;-1:-1:-1;14565:14:102;14561:22;;;14548:36;14543:3;14539:46;14519:67;;26176:4:186;3514:22:102;3501:36;25094:8:186;:26;:55;;14565:14:102;14561:22;;;14548:36;14543:3;14539:46;14519:67;;26176:4:186;3514:22:102;3501:36;25094:55:186;;;25123:8;25094:55;25083:66;-1:-1:-1;25164:20:186;;;;25185:6;25193:4;25164:83;;;;;;;;;;;;;14435:25:416;;;;14476:18;;;14469:34;25225:4:186;25213:16;;;14519:18:416;;;14512:34;25232:1:186;14562:18:416;;;14555:34;14605:19;;;14598:35;;;14407:19;;25164:83:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24592:666;24535:1033;;;2894:4:199;25268:6:186;:35;25264:304;;25414:86;;;;;;;;14435:25:416;;;14476:18;;;14469:34;;;25463:11:186;25478:4;25463:19;14519:18:416;;;14512:34;25485:1:186;14562:18:416;;;14555:34;14605:19;;;14598:35;;;25414:20:186;;;;;;14407:19:416;;25414:86:186;14167:472:416;25264:304:186;25538:19;;;;;;;;;;;;;;37066:213;36281:9;14565:14:102;14561:22;;;14548:36;14543:3;14539:46;14519:67;;36594:4:186;3514:22:102;3501:36;37147:23:186;37261:11;:9;:11::i;:::-;37248:24;;37066:213;;;:::o;413:105:74:-;471:7;502:1;497;:6;;:14;;510:1;497:14;;;506:1;497:14;490:21;;413:105;;;;;:::o;4961:384:218:-;5060:7;5137:16;:24;;;5179:16;:26;;;5223:16;:41;;;5282:16;:32;;;5109:219;;;;;;;;;;15540:25:416;;;15596:2;15581:18;;15574:34;;;;15639:2;15624:18;;15617:34;15682:2;15667:18;;15660:34;15527:3;15512:19;;15309:391;5109:219:218;;;;;;;;;;;;;5086:252;;;;;;5079:259;;4961:384;;;:::o;1325:328:230:-;-1:-1:-1;;;;;;;;;;;;;;;;;1463:3:230;:10;1477:1;1463:15;1459:39;;1487:11;;;;;;;;;;;;;;1459:39;-1:-1:-1;1605:41:230;;;;;;;;;1623:10;;1605:41;;1575:2;1566:12;;;1605:41;;;;;;;;1325:328::o;1805:1674::-;1866:21;1900:18;1920;1940:20;1964:18;1978:3;1964:13;:18::i;:::-;1899:83;;-1:-1:-1;1899:83:230;-1:-1:-1;1899:83:230;-1:-1:-1;2009:21:230;1997:8;:33;;;;;;;;:::i;:::-;;1993:64;;2039:18;;;;;;;;;;;;;;1993:64;2099:10;;2072:23;2085:10;2072;:23;:::i;:::-;:37;2068:72;;2118:22;;;;;;;;;;;;;;2068:72;2550:30;;;1150:2;2550:30;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;2550:30:230;;;;;;;;;;;;;;-1:-1:-1;2543:37:230;-1:-1:-1;2591:17:230;2639:10;2659:681;2675:10;;2666:19;;2659:681;;;2702:18;2722;2745:150;2776:105;;;;;;;;2807:6;2794:3;:10;;;:19;;;;:::i;:::-;2776:105;;;;2871:6;2860:3;:7;;;2839:38;;;;:::i;:::-;2776:105;;2745:13;:150::i;:::-;2701:194;;;;;3100:153;;;;;;;;3147:10;3134;:23;;;;:::i;:::-;3100:153;;;;3231:6;3220:3;:7;;;3199:38;;;;:::i;:::-;3100:153;;;3082:4;3087:9;3082:15;;;;;;;;:::i;:::-;;;;;;;;;;:171;3268:14;3281:1;3268:14;;:::i;:::-;;-1:-1:-1;3306:23:230;3319:10;3306;:23;:::i;:::-;3296:33;;;;:::i;:::-;;;2687:653;;2659:681;;;-1:-1:-1;3440:23:230;;-1:-1:-1;3447:4:230;;1805:1674;-1:-1:-1;;;1805:1674:230:o;3892:393::-;3954:17;3984:18;4004;4024:20;4048:18;4062:3;4048:13;:18::i;:::-;3983:83;;-1:-1:-1;3983:83:230;-1:-1:-1;3983:83:230;-1:-1:-1;4093:21:230;4081:8;:33;;;;;;;;:::i;:::-;;4077:62;;4123:16;;;;;;;;;;;;;;4077:62;4168:23;4181:10;4168;:23;:::i;:::-;4154:10;;:37;4150:72;;4200:22;;;;;;;;;;;;;;4150:72;4240:38;4246:3;:7;;;4255:10;4267;4240:5;:38::i;44358:361:186:-;44551:12;;;;44618:18;;;44536:12;44618:18;;;:6;:18;;;;;:26;;44551:12;;;;;;;44536;44618:26;;44551:12;;44618:26;:::i;:::-;;;;-1:-1:-1;;44683:29:186;;;;;:11;13018:55:416;;;44683:29:186;;;13000:74:416;13090:18;;;13083:34;;;44683:4:186;:11;;;;12973:18:416;;44683:29:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;44439:280;44358:361;;:::o;1122:588:102:-;1389:4;1383:11;1407:19;;;14565:14;14561:22;;;14548:36;14543:3;14539:46;14519:67;;1407:19;1489:22;;;1482:4;1473:14;;1460:60;1562:6;1555:4;1550:3;1546:14;1542:27;1592:1;1589;1582:12;1664:4;1661:1;1657:12;1651:4;1644:26;;1362:342;1122:588;;;;:::o;16810:6142:186:-;17028:22;17018:6;;;;;;;:32;;;;;;;;:::i;:::-;;17014:64;;17059:19;;;;;;;;;;;;;;17014:64;17169:23;17195:9;17205:15;17195:26;;;;;;;;:::i;:::-;;;;;;;;;;17169:52;;;;;;;;17195:26;;;;;;;17169:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17319:53:186;;17315:93;;17381:27;;;;;;;;;;;;;;17315:93;17688:15;;;;17667:18;9114:17:197;;17737:14:186;;;9111:32:197;9108:1;9104:40;17713:49:186;;17772:25;17800:20;:12;:18;;2582:66:197;2534:20;1856:18;1853:46;-1:-1:-1;1850:1:197;1846:54;1957:22;;;1945:10;1942:38;1939:1;1935:46;1924:58;2075:22;;;2141:1;2137:17;;;2123:32;2199:1;2195:17;;;2181:32;2257:1;2253:17;;;2239:32;2315:1;2311:17;;;2297:32;2373:2;2369:18;;;2355:33;2519:36;2514:3;2510:46;2480:190;2428:260;;1628:1076;17800:20:186;17772:48;;;-1:-1:-1;18167:20:186;;;:60;;-1:-1:-1;18212:15:186;:11;18226:1;18212:15;:::i;:::-;18191:17;:36;18167:60;18166:76;;;;;18233:9;18232:10;18166:76;18162:137;;;18265:23;;;;;;;;;;;;;;18162:137;18460:23;;;;;;;:47;;;;-1:-1:-1;18487:20:186;;18460:47;18456:85;;;18516:25;;;;;;;;;;;;;;18456:85;18903:14;18883:17;:34;18879:66;;;18926:19;;;;;;;;;;;;;;18879:66;19173:15;:11;19187:1;19173:15;:::i;:::-;19152:17;:36;19148:138;;19204:71;19229:6;19237:15;19254:9;19265;19204:24;:71::i;:::-;19409:9;19376:29;19392:12;19376:15;:29::i;:::-;:42;19372:76;;19427:21;;;;;;;;;;;;;;19372:76;19681:21;19705:38;19727:15;19705:21;:38::i;:::-;19681:62;-1:-1:-1;19915:22:186;:18;:22;;19893:16;;;:46;19889:78;;19948:19;;;;;;;;;;;;;;19889:78;20356:22;20413:18;20430:1;20413:14;:18;:::i;:::-;20392:17;:39;20388:926;;20739:2;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:27;;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20708:61;;:15;:19;;:61;:::i;:::-;20690:79;;20388:926;;;20811:15;20825:1;20811:11;:15;:::i;:::-;20790:17;:36;20786:528;;21140:25;:15;:19;;21164:1;21140:25;:::i;20786:528::-;-1:-1:-1;21282:15:186;:19;;20786:528;21407:42;21434:15;21407:18;:22;;:42;:::i;:::-;21386:63;;:18;:12;:16;;6649:9:198;6529:145;21386:18:186;:63;;;21382:166;;;21494:42;21521:15;21494:18;:22;;:42;:::i;:::-;21465:72;;21382:166;21649:15;1528:4:198;1524:20;;;21717:15:186;1521:36:198;22019:14:186;5875:20:198;;;5928:3;5924:19;;;5949:34;5945:56;;5921:81;5915:4;5908:95;6046:4;6030:21;;21649:86:186;;-1:-1:-1;22019:14:186;22100:17;;;;:6;:17;;;;;;22019:67;;-1:-1:-1;22100:17:186;;22096:50;;;22126:20;;;;;;;;;;;;;;22096:50;22176:4;22156:6;:17;22163:9;22156:17;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;22224:9;22252:366;;;;;;;;22300:15;22252:366;;;;;;22416:1;22252:366;;;;;;22446:10;22252:366;;;;;;22488:9;22252:366;;;;;;22523:6;22252:366;;;;22557:12;22252:366;;;;;;22594:9;22252:366;;;;;22224:404;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22697:8;:25;22706:15;22697:25;;;;;;;;;;;22747:1;22728:9;:16;;;;:20;;;;:::i;:::-;22697:52;;;;;;;-1:-1:-1;22697:52:186;;;;;;;;22789:34;;;;;;;;:12;:4;:12;;;;22810:9;;22789:34;;;;;-1:-1:-1;22789:34:186;;;;;22810:9;22789:12;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22904:41:186;;22934:10;;-1:-1:-1;22926:6:186;;-1:-1:-1;22909:15:186;;-1:-1:-1;22904:41:186;;;;;16919:6033;;;;;;;;16810:6142;;;;:::o;8855:2903::-;9545:11;;;;;;;9541:44;;;9565:20;;;;;;;;;;;;;;9541:44;9675:40;;;;;;9705:9;7636:23:416;9675:40:186;;;7618:42:416;9637:9:186;;;;9675:29;:21;:29;;;;7591:18:416;;9675:40:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9636:79;;-1:-1:-1;9636:79:186;-1:-1:-1;9636:79:186;9812:57;;9849:20;;;;;;;;;;;;;;9812:57;9942:58;;;;;;;;;;;;;;;;;9921:18;:79;;;;;;;10617:14;10633:4;10614:24;10604:195;;10739:10;10733:4;10726:24;10780:4;10774;10767:18;10604:195;10996:15;14565:14:102;14561:22;;;14548:36;14543:3;14539:46;14519:67;;26176:4:186;3514:22:102;3501:36;10977:34:186;10973:79;;11020:32;;;;;14565:14:102;14561:22;;;14548:36;14543:3;14539:46;14519:67;;36594:4:186;3514:22:102;3501:36;11020:32:186;;;2195:25:416;2168:18;;11020:32:186;;;;;;;;10973:79;11121:370;;;;;;;;11162:16;11121:370;;;-1:-1:-1;11121:370:186;;;;;;14561:22:102;14565:14;14561:22;;;14548:36;14543:3;14539:46;14519:67;;1993:36;;1989:2;1985:45;;;11121:370:186;;;;;;11292:9;11121:370;;;;;;;;;;36594:4;3514:22:102;;;3501:36;11121:370:186;;;;;;3011:1;11121:370;;;;;;11458:15;11121:370;;;;;;;;11093:9;:408;;;;;;;;;;;;;;;;;;;;;;11121:370;11093:408;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11552:18;;;;;;;;11610:34;;;;;;;:4;:12;;;;;;11292:9;11093:408;11610:34;;;;-1:-1:-1;11610:34:186;;;;;11292:9;11610:12;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11700:9:186;:51;;;;11734:15;11700:51;;;;;-1:-1:-1;;;;;8855:2903:186:o;11843:3927:103:-;12373:34;12370:41;-1:-1:-1;12367:1:103;12363:49;12466:9;;;12446:18;12443:33;12440:1;12436:41;12430:48;12524:9;;;12512:10;12509:25;12506:1;12502:33;12496:40;12578:9;;;12570:6;12567:21;12564:1;12560:29;12554:36;12630:9;;;12624:4;12621:19;12618:1;12614:27;12608:34;11891:8;12739:9;;12729:135;;12781:10;12775:4;12768:24;12845:4;12839;12832:18;12729:135;13016:66;12962:34;12951:9;;;12947:50;12941:4;12937:61;12932:151;12925:159;13210:9;;;13205:3;13201:19;;;14173:31;14169:39;;14272:9;;13660:2;14264:18;;;14230:32;14226:57;14348:9;;14340:18;;14305:33;14301:58;14424:9;;14416:18;;14381:33;14377:58;14500:9;;14492:18;;14457:33;14453:58;14575:9;;14567:18;;14533:32;14529:57;14648:9;;14640:18;;14608:30;14604:55;13672:31;13668:59;;13664:67;;13656:76;;13606:32;13602:131;13598:139;;13590:148;;13540:32;13536:203;13532:211;;13524:220;;13430:349;;13809:9;;13801:18;;13797:57;;13884:9;;13876:18;;;13872:57;;13951:9;;;13947:55;;15131:10;15261:43;15257:51;15499:11;;;15426:71;15422:89;15418:97;15595:72;15591:80;15747:3;15743:11;;11843:3927::o;5293:468::-;5354:9;5574:16;5568:23;;5586:3;5559:33;5552:41;5545:49;;5535:173;;5627:10;5621:4;5614:24;5689:4;5683;5676:18;5535:173;-1:-1:-1;5737:3:103;5730:11;;;;5726:19;;5293:468::o;2809:424::-;2870:9;3063:1;3059;3055:6;3051:14;3048:1;3045:21;3042:1;3038:29;3035:145;;;3099:10;3093:4;3086:24;3161:4;3155;3148:18;3035:145;-1:-1:-1;3213:3:103;3202:9;;3198:19;;2809:424::o;8260:3448::-;8309:8;8504:21;8499:1;:26;8495:40;;8260:3448;;;:::o;8495:40::-;8841:21;8838:1;8834:29;8824:164;;8900:10;8894:4;8887:24;8965:4;8959;8952:18;8824:164;9280:7;9274:2;9269:7;;;9268:19;;-1:-1:-1;9551:8:103;9619:2;9575:29;9564:7;;;9563:41;9607:7;9563:51;9562:59;;9647:29;9643:33;;9639:37;;;10328:35;;;10383:5;;9959:2;10382:13;;;10399:32;10381:50;10451:5;;10450:13;;10449:51;;10520:5;;10519:13;;10536:34;10518:52;10590:5;;10589:13;;10588:53;;10661:5;;10660:13;;10677:35;10659:53;9965:32;9898:31;9894:35;;9949:5;;9948:13;;9947:50;;;10022:5;;;:40;;10082:5;10081:13;;;10098:35;10080:53;10151:5;;;10160:40;10151:50;11079:10;11607:49;11594:62;11669:3;:7;;;;11593:84;;;;;;-1:-1:-1;;8260:3448:103:o;7938:186::-;7997:6;8081:36;2458:4;8100:1;8089:8;8095:1;8089:5;:8::i;:::-;:12;;;;:::i;:::-;8088:28;;;;:::i;:::-;8081:6;:36::i;12010:4442:186:-;12293:22;12283:6;;;;;;;:32;;;;;;;;:::i;:::-;;12279:64;;12324:19;;;;;;;;;;;;;;12279:64;12434:24;12461:9;12471:11;12461:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;12567:15;;;;12461:22;;-1:-1:-1;12567:15:186;;;9114:17:197;;9111:32;;9108:1;9104:40;12639:44:186;-1:-1:-1;12818:18:186;:14;12835:1;12818:18;:::i;:::-;12799:15;:7;:13;;2582:66:197;2534:20;1856:18;1853:46;-1:-1:-1;1850:1:197;1846:54;1957:22;;;1945:10;1942:38;1939:1;1935:46;1924:58;2075:22;;;2141:1;2137:17;;;2123:32;2199:1;2195:17;;;2181:32;2257:1;2253:17;;;2239:32;2315:1;2311:17;;;2297:32;2373:2;2369:18;;;2355:33;2519:36;2514:3;2510:46;2480:190;2428:260;;1628:1076;12799:15:186;:37;;;12795:65;;12845:15;;;;;;;;;;;;;;12795:65;12936:19;12965:27;13006:9;13002:1343;;;13737:28;13754:11;13737:14;:28;:::i;:::-;13731:1;:35;;13705:22;:7;:20;;;:22::i;:::-;:62;;;;;;:::i;:::-;13704:69;:211;;13828:81;13861:19;13879:1;13861:13;;;:19;:::i;:::-;13883:18;;;;;13828;:81::i;:::-;:87;;;13704:211;;;13792:17;13704:211;13688:227;;14008:6;13996:18;;13002:1343;;;14215:12;;;;;-1:-1:-1;14253:81:186;14286:19;:13;;;14304:1;14286:19;:::i;14253:81::-;14241:93;;13002:1343;14741:1;14718:13;:24;;14713:1;14698:10;;14688:21;;;;;;;:::i;:::-;;;;;;;;:26;;:54;14684:84;;14751:17;;;;;;;;;;;;;;14684:84;14839:9;14851:30;14869:11;14851:17;:30::i;:::-;14839:42;;15854:14;15914:21;:9;:15;;;6649:9:198;6529:145;15914:21:186;15871:39;;;;;:2;:7;;;;;:39;;15879:10;;;;15891:6;;;;15899:4;;15871:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15989:18;;;;15871:64;;;-1:-1:-1;15945:20:186;;16019:1;;15989:26;;:18;;2582:66:197;2534:20;1856:18;1853:46;-1:-1:-1;1850:1:197;1846:54;1957:22;;;1945:10;1942:38;1939:1;1935:46;1924:58;2075:22;;;2141:1;2137:17;;;2123:32;2199:1;2195:17;;;2181:32;2257:1;2253:17;;;2239:32;2315:1;2311:17;;;2297:32;2373:2;2369:18;;;2355:33;2519:36;2514:3;2510:46;2480:190;2428:260;;1628:1076;15989:26:186;15969:17;:9;:15;;2582:66:197;2534:20;1856:18;1853:46;-1:-1:-1;1850:1:197;1846:54;1957:22;;;1945:10;1942:38;1939:1;1935:46;1924:58;2075:22;;;2141:1;2137:17;;;2123:32;2199:1;2195:17;;;2181:32;2257:1;2253:17;;;2239:32;2315:1;2311:17;;;2297:32;2373:2;2369:18;;;2355:33;2519:36;2514:3;2510:46;2480:190;2428:260;;1628:1076;15969:17:186;:46;;;;:::i;:::-;15968:52;;;;:::i;:::-;:57;;;;-1:-1:-1;16039:28:186;;;;;16035:52;;16076:11;;;;;;;;;;;;;;16035:52;16181:18;;;;;:32;:18;:32;16177:60;;16222:15;;;;;;;;;;;;;;16177:60;-1:-1:-1;;16414:31:186;;;;16435:10;16414:31;;;;;;-1:-1:-1;;;;;;;;;;;12010:4442:186:o;48627:3468::-;48731:20;48753:21;48776:20;48798:21;48872:16;48891:6;48872:25;;48907:23;48933:9;48943:8;48933:19;;;;;;;;:::i;:::-;;;;;;;;;49075:14;48933:19;;;;;49075:14;;;;48933:19;;-1:-1:-1;49101:11:186;;49075:22;;:14;;2582:66:197;2534:20;1856:18;1853:46;-1:-1:-1;1850:1:197;1846:54;1957:22;;;1945:10;1942:38;1939:1;1935:46;1924:58;2075:22;;;2141:1;2137:17;;;2123:32;2199:1;2195:17;;;2181:32;2257:1;2253:17;;;2239:32;2315:1;2311:17;;;2297:32;2373:2;2369:18;;;2355:33;2519:36;2514:3;2510:46;2480:190;2428:260;;1628:1076;49075:22:186;:37;;;49071:67;;49121:17;;;;;;;;;;;;;;49071:67;49489:20;49553:5;49568:571;49591:14;;;;49617:11;;49591:22;;:14;;2582:66:197;2534:20;1856:18;1853:46;-1:-1:-1;1850:1:197;1846:54;1957:22;;;1945:10;1942:38;1939:1;1935:46;1924:58;2075:22;;;2141:1;2137:17;;;2123:32;2199:1;2195:17;;;2181:32;2257:1;2253:17;;;2239:32;2315:1;2311:17;;;2297:32;2373:2;2369:18;;;2355:33;2519:36;2514:3;2510:46;2480:190;2428:260;;1628:1076;49591:22:186;49576:37;;;;;49575:53;49568:571;;;49666:17;;;;50009:15;:11;49666:17;50009:15;:::i;:::-;49993:12;:31;49989:58;;50042:5;50026:21;;49989:58;50070:9;50080:11;50070:22;;;;;;;;:::i;:::-;;;;;;;;;;;50062:30;;50117:11;50106:22;;49630:509;49568:571;;;50452:22;;;;;50476:14;;;;50452:22;;;;;50476:14;50407:20;50476:14;50518:45;;:26;:20;:11;:18;;4530:1:197;4526:17;;4405:154;50518:20:186;:24;;6649:9:198;6529:145;50518:26:186;:45;;;50501:62;;51058:9;51054:1035;;;51397:1;51370:24;:9;:22;;;:24::i;:::-;:28;;;51366:349;;;51418:26;51447:70;51480:19;51498:1;51480:13;;;:19;:::i;:::-;51502:8;51512:4;51447:18;:70::i;:::-;51569:14;;;;51585:17;;;;;51569:14;;-1:-1:-1;51585:17:186;;;-1:-1:-1;51366:349:186;;-1:-1:-1;51366:349:186;;51670:18;:23;51642:58;;51366:349;51762:11;;;;51775:14;;;;51762:11;;-1:-1:-1;51775:14:186;;;-1:-1:-1;51054:1035:186;;;51821:26;51850:70;51883:19;:13;;;51901:1;51883:19;:::i;51850:70::-;51968:11;;;;;51981:14;;;;;52044;;;;52060:17;;;51968:11;;-1:-1:-1;51981:14:186;;;;;-1:-1:-1;52044:14:186;;-1:-1:-1;52060:17:186;;-1:-1:-1;;51054:1035:186;48825:3270;;;;;;;48627:3468;;;;;:::o;53035:616::-;53230:10;53452:16;;;:23;:192;;53582:60;;;;;;20068:25:416;;;20112:34;20182:15;;;20162:18;;;20155:43;;;;20214:18;;;20207:34;;;20277:15;;;20257:18;;;20250:43;20040:19;;53582:60:186;;;;;;;;;;;;53572:71;;;;;;53452:192;;;53521:9;53532:12;53510:35;;;;;;;;20537:25:416;;;20610:34;20598:47;20593:2;20578:18;;20571:75;20525:2;20510:18;;20304:348;53510:35:186;;;;;;;;;;;;;53500:46;;;;;;53444:200;53035:616;-1:-1:-1;;;;;53035:616:186:o;5741:336:197:-;5823:19;5854:11;5868:16;5874:9;2582:66;2534:20;1856:18;1853:46;-1:-1:-1;1850:1:197;1846:54;1957:22;;;1945:10;1942:38;1939:1;1935:46;1924:58;2075:22;;;2141:1;2137:17;;;2123:32;2199:1;2195:17;;;2181:32;2257:1;2253:17;;;2239:32;2315:1;2311:17;;;2297:32;2373:2;2369:18;;;2355:33;2519:36;2514:3;2510:46;2480:190;2428:260;;1628:1076;5868:16;5854:30;;;;5949:3;5938:9;5934:19;6058:1;6047:9;6043:17;6038:1;6034;6023:9;6019:17;6015:25;6003:9;5992;5988:25;5985:56;5981:80;5966:95;;;5903:168;5741:336;;;;:::o;5074:3092:230:-;5163:15;5180;5197:17;5516:3;:10;;;5530:1;5516:15;5512:39;;5540:11;;;;;;;;;;;;;;5512:39;5582:7;;;;5664:10;;5562:17;5656:19;5709:4;5699:14;;5695:2465;;5765:1;5768;5771:21;5757:36;;;;;;;;;;5695:2465;5824:4;5814:6;:14;5810:2350;;5930:14;5947:13;5956:4;5947:6;:13;:::i;:::-;5930:30;;5993:6;5979:3;:10;;;:20;5975:56;;6008:23;;;;;;;;;;;;;;5975:56;6153:1;6144:11;;;6138:18;6158:14;6134:39;;6205:11;;:40;;;;-1:-1:-1;6220:25:230;;;;;6205:40;6201:68;;;6254:15;;;;;;;;;;;;;;6201:68;-1:-1:-1;6292:1:230;;-1:-1:-1;6295:6:230;-1:-1:-1;6303:21:230;;-1:-1:-1;6284:41:230;;-1:-1:-1;;6284:41:230;5810:2350;6356:4;6346:6;:14;6342:1818;;6404:19;6426:13;6435:4;6426:6;:13;:::i;:::-;6404:35;;6472:11;6458:3;:10;;;:25;6454:61;;6492:23;;;;;;;;;;;;;;6454:61;6637:1;6628:11;;6622:18;6642:14;6618:39;6530:25;6689:26;;;6685:54;;6724:15;;;;;;;;;;;;;;6685:54;6869:1;6860:11;;6854:18;6836:1;6832:19;;6827:3;6823:29;6819:54;6915:2;6905:12;;6901:40;;6926:15;;;;;;;;;;;;;;6901:40;6974:20;6988:6;6974:11;:20;:::i;:::-;6960:10;;:34;6956:70;;7003:23;;;;;;;;;;;;;;6956:70;7049:15;7053:11;7049:1;:15;:::i;:::-;7041:55;-1:-1:-1;7066:6:230;-1:-1:-1;7074:21:230;;-1:-1:-1;7041:55:230;;-1:-1:-1;;;;7041:55:230;6342:1818;7127:4;7117:6;:14;7113:1047;;7230:15;7248:13;7257:4;7248:6;:13;:::i;:::-;7230:31;;7294:7;7280:3;:10;;;:21;7276:57;;7310:23;;;;;;;;;;;;;;7276:57;7356:1;;-1:-1:-1;7359:7:230;-1:-1:-1;7356:1:230;;-1:-1:-1;7348:42:230;;-1:-1:-1;;7348:42:230;7113:1047;7447:20;7470:13;7479:4;7470:6;:13;:::i;:::-;7447:36;;7516:12;7502:3;:10;;;:26;7498:62;;7537:23;;;;;;;;;;;;;;7498:62;7682:1;7673:11;;7667:18;7687:14;7663:39;7575:25;7734:26;;;7730:54;;7769:15;;;;;;;;;;;;;;7730:54;7917:1;7908:11;;7902:18;7883:1;7879:20;;7874:3;7870:30;7866:55;7964:2;7953:13;;7949:41;;7975:15;;;;;;;;;;;;;;7949:41;8023:22;8038:7;8023:12;:22;:::i;:::-;8009:10;;:36;8005:72;;8054:23;;;;;;;;;;;;;;8005:72;8100:16;8104:12;8100:1;:16;:::i;:::-;8092:57;-1:-1:-1;8118:7:230;-1:-1:-1;8127:21:230;;-1:-1:-1;8092:57:230;;-1:-1:-1;;;;8092:57:230;5074:3092;;;;;;:::o;8426:737::-;8517:17;8563:7;8553:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8553:18:230;-1:-1:-1;8546:25:230;-1:-1:-1;8581:54:230;;8613:11;8581:54;8851:11;8865:36;8894:7;8886:4;8865:36;:::i;:::-;8851:50;;8956:2;8950:4;8946:13;8981:1;8995:87;9009:7;9006:1;9003:14;8995:87;;;9067:11;;;9061:18;9047:12;;;9040:40;9032:2;9025:10;8995:87;;;9105:7;9102:1;9099:14;9096:51;;;9143:1;9133:7;9127:4;9123:18;9116:29;9096:51;;;8920:237;8426:737;;;;;;:::o;44938:1977:186:-;45690:24;45731:20;:14;;;45750:1;45731:20;:::i;:::-;45690:62;;45762:26;45791:80;45818:15;45843:10;45864:4;45791:18;:80::i;:::-;45762:109;-1:-1:-1;45881:14:186;45904:19;;;45939:9;;:61;;-1:-1:-1;45985:15:186;45999:1;45985:11;:15;:::i;:::-;45952:17;;;;45980:1;;45952:25;;:17;;2582:66:197;2534:20;1856:18;1853:46;-1:-1:-1;1850:1:197;1846:54;1957:22;;;1945:10;1942:38;1939:1;1935:46;1924:58;2075:22;;;2141:1;2137:17;;;2123:32;2199:1;2195:17;;;2181:32;2257:1;2253:17;;;2239:32;2315:1;2311:17;;;2297:32;2373:2;2369:18;;;2355:33;2519:36;2514:3;2510:46;2480:190;2428:260;;1628:1076;45952:25:186;:29;;;;:::i;:::-;:48;;;45939:61;45935:974;;;46478:36;;;1979:1:199;46478:36:186;;:74;;-1:-1:-1;46518:34:186;;;2073:1:199;46518:34:186;46478:74;46472:154;;46580:31;;;;;;;;2195:25:416;;;2168:18;;46580:31:186;2022:204:416;46472:154:186;45935:974;;;46646:34;;;;46642:267;;46867:31;;;;;;;;2195:25:416;;;2168:18;;46867:31:186;2022:204:416;3171:363:197;3236:21;3411:11;3425:16;3431:9;2582:66;2534:20;1856:18;1853:46;-1:-1:-1;1850:1:197;1846:54;1957:22;;;1945:10;1942:38;1939:1;1935:46;1924:58;2075:22;;;2141:1;2137:17;;;2123:32;2199:1;2195:17;;;2181:32;2257:1;2253:17;;;2239:32;2315:1;2311:17;;;2297:32;2373:2;2369:18;;;2355:33;2519:36;2514:3;2510:46;2480:190;2428:260;;1628:1076;3425:16;3515:1;3411:30;;;;;3506:11;3491:27;;;;3171:363;-1:-1:-1;;3171:363:197:o;47435:677:186:-;47585:27;47684:25;47712:7;:71;;47745:38;:25;;;47771:11;47745:25;:38::i;:::-;47712:71;;;47722:20;:4;:18;;;:20::i;:::-;47684:99;;47951:9;47961:6;47951:17;;;;;;;;:::i;:::-;;;;;;;;;;;47939:29;;47978:128;47985:18;;;;48013:20;;;;47985:18;;:50;47978:128;;48073:21;;48063:9;:32;;:9;;48073:21;;;48063:32;;;;;;:::i;:::-;;;;;;;;;;;48051:44;;47978:128;;;47618:494;47435:677;;;;;:::o;52349:319::-;52420:10;52443:14;52459:20;52481:14;52497:20;52533:44;52565:11;52533:31;:44::i;:::-;52442:135;;;;;;;;52595:66;52616:8;52626:11;52639:8;52649:11;52595:20;:66::i;:::-;52587:74;52349:319;-1:-1:-1;;;;;;52349:319:186:o;7608:944:197:-;7757:18;7898:20;7877:17;:9;:15;;2582:66;2534:20;1856:18;1853:46;-1:-1:-1;1850:1:197;1846:54;1957:22;;;1945:10;1942:38;1939:1;1935:46;1924:58;2075:22;;;2141:1;2137:17;;;2123:32;2199:1;2195:17;;;2181:32;2257:1;2253:17;;;2239:32;2315:1;2311:17;;;2297:32;2373:2;2369:18;;;2355:33;2519:36;2514:3;2510:46;2480:190;2428:260;;1628:1076;7877:17;:41;;;7873:222;;8025:10;8019:4;8012:24;8066:4;8060;8053:18;7873:222;8160:24;8174:9;8160:13;:24::i;:::-;8148:36;;8441:20;8420:17;:9;:15;;2582:66;2534:20;1856:18;1853:46;-1:-1:-1;1850:1:197;1846:54;1957:22;;;1945:10;1942:38;1939:1;1935:46;1924:58;2075:22;;;2141:1;2137:17;;;2123:32;2199:1;2195:17;;;2181:32;2257:1;2253:17;;;2239:32;2315:1;2311:17;;;2297:32;2373:2;2369:18;;;2355:33;2519:36;2514:3;2510:46;2480:190;2428:260;;1628:1076;8420:17;:41;;;8416:130;;8489:46;8510:24;:20;8533:1;8510:24;:::i;:::-;8489:20;;;;;:46::i;6379:710::-;6445:18;6608:14;;6639:1;6624:17;;6604:38;6445:18;6743:10;6604:38;2582:66;2534:20;1856:18;1853:46;-1:-1:-1;1850:1:197;1846:54;1957:22;;;1945:10;1942:38;1939:1;1935:46;1924:58;2075:22;;;2141:1;2137:17;;;2123:32;2199:1;2195:17;;;2181:32;2257:1;2253:17;;;2239:32;2315:1;2311:17;;;2297:32;2373:2;2369:18;;;2355:33;2519:36;2514:3;2510:46;2480:190;2428:260;;1628:1076;6743:10;6729:24;;6952:19;;;;7063:9;;7057:16;;6379:710;-1:-1:-1;;;6379:710:197:o;4980:313::-;5062:20;5094:11;5108:16;5114:9;2582:66;2534:20;1856:18;1853:46;-1:-1:-1;1850:1:197;1846:54;1957:22;;;1945:10;1942:38;1939:1;1935:46;1924:58;2075:22;;;2141:1;2137:17;;;2123:32;2199:1;2195:17;;;2181:32;2257:1;2253:17;;;2239:32;2315:1;2311:17;;;2297:32;2373:2;2369:18;;;2355:33;2519:36;2514:3;2510:46;2480:190;2428:260;;1628:1076;5108:16;5094:30;;;;5189:3;5178:9;5174:19;5274:1;5270;5259:9;5255:17;5251:25;5239:9;5228;5224:25;5221:56;5206:71;;;5143:144;4980:313;;;;:::o;14:347:416:-;65:8;75:6;129:3;122:4;114:6;110:17;106:27;96:55;;147:1;144;137:12;96:55;-1:-1:-1;170:20:416;;213:18;202:30;;199:50;;;245:1;242;235:12;199:50;282:4;274:6;270:17;258:29;;334:3;327:4;318:6;310;306:19;302:30;299:39;296:59;;;351:1;348;341:12;296:59;14:347;;;;;:::o;366:564::-;482:6;490;498;542:9;533:7;529:23;572:3;568:2;564:12;561:32;;;589:1;586;579:12;561:32;613:3;609:2;605:12;602:32;;;630:1;627;620:12;602:32;;653:9;643:19;;713:3;702:9;698:19;685:33;741:18;733:6;730:30;727:50;;;773:1;770;763:12;727:50;812:58;862:7;853:6;842:9;838:22;812:58;:::i;:::-;366:564;;889:8;;-1:-1:-1;786:84:416;;-1:-1:-1;;;;366:564:416:o;935:248::-;1003:6;1011;1064:2;1052:9;1043:7;1039:23;1035:32;1032:52;;;1080:1;1077;1070:12;1032:52;-1:-1:-1;;1103:23:416;;;1173:2;1158:18;;;1145:32;;-1:-1:-1;935:248:416:o;1426:184::-;1478:77;1475:1;1468:88;1575:4;1572:1;1565:15;1599:4;1596:1;1589:15;1615:402;1764:2;1749:18;;1797:1;1786:13;;1776:201;;1833:77;1830:1;1823:88;1934:4;1931:1;1924:15;1962:4;1959:1;1952:15;1776:201;1986:25;;;1615:402;:::o;3343:372::-;3476:6;3484;3492;3545:2;3533:9;3524:7;3520:23;3516:32;3513:52;;;3561:1;3558;3551:12;3513:52;-1:-1:-1;;3584:23:416;;;3654:2;3639:18;;3626:32;;-1:-1:-1;3705:2:416;3690:18;;;3677:32;;3343:372;-1:-1:-1;3343:372:416:o;3720:531::-;3762:3;3800:5;3794:12;3827:6;3822:3;3815:19;3852:1;3862:162;3876:6;3873:1;3870:13;3862:162;;;3938:4;3994:13;;;3990:22;;3984:29;3966:11;;;3962:20;;3955:59;3891:12;3862:162;;;4042:6;4039:1;4036:13;4033:87;;;4108:1;4101:4;4092:6;4087:3;4083:16;4079:27;4072:38;4033:87;-1:-1:-1;4165:2:416;4153:15;4170:66;4149:88;4140:98;;;;4240:4;4136:109;;3720:531;-1:-1:-1;;3720:531:416:o;4256:220::-;4405:2;4394:9;4387:21;4368:4;4425:45;4466:2;4455:9;4451:18;4443:6;4425:45;:::i;4761:180::-;4820:6;4873:2;4861:9;4852:7;4848:23;4844:32;4841:52;;;4889:1;4886;4879:12;4841:52;-1:-1:-1;4912:23:416;;4761:180;-1:-1:-1;4761:180:416:o;5431:154::-;5517:42;5510:5;5506:54;5499:5;5496:65;5486:93;;5575:1;5572;5565:12;5486:93;5431:154;:::o;5590:247::-;5649:6;5702:2;5690:9;5681:7;5677:23;5673:32;5670:52;;;5718:1;5715;5708:12;5670:52;5757:9;5744:23;5776:31;5801:5;5776:31;:::i;6079:160::-;6144:20;;6200:13;;6193:21;6183:32;;6173:60;;6229:1;6226;6219:12;6173:60;6079:160;;;:::o;6244:441::-;6383:6;6391;6399;6407;6460:3;6448:9;6439:7;6435:23;6431:33;6428:53;;;6477:1;6474;6467:12;6428:53;6513:9;6500:23;6490:33;;6570:2;6559:9;6555:18;6542:32;6532:42;;6621:2;6610:9;6606:18;6593:32;6583:42;;6644:35;6675:2;6664:9;6660:18;6644:35;:::i;:::-;6634:45;;6244:441;;;;;;;:::o;7671:332::-;7761:6;7814:2;7802:9;7793:7;7789:23;7785:32;7782:52;;;7830:1;7827;7820:12;7782:52;7869:9;7856:23;7919:34;7912:5;7908:46;7901:5;7898:57;7888:85;;7969:1;7966;7959:12;8881:854;8986:6;8994;9002;9010;9018;9026;9079:3;9067:9;9058:7;9054:23;9050:33;9047:53;;;9096:1;9093;9086:12;9047:53;9132:9;9119:23;9109:33;;9161:35;9192:2;9181:9;9177:18;9161:35;:::i;:::-;9151:45;;9247:2;9236:9;9232:18;9219:32;9270:18;9311:2;9303:6;9300:14;9297:34;;;9327:1;9324;9317:12;9297:34;9366:58;9416:7;9407:6;9396:9;9392:22;9366:58;:::i;:::-;9443:8;;-1:-1:-1;9340:84:416;-1:-1:-1;9531:2:416;9516:18;;9503:32;;-1:-1:-1;9547:16:416;;;9544:36;;;9576:1;9573;9566:12;9544:36;;9615:60;9667:7;9656:8;9645:9;9641:24;9615:60;:::i;:::-;8881:854;;;;-1:-1:-1;8881:854:416;;-1:-1:-1;8881:854:416;;9694:8;;8881:854;-1:-1:-1;;;8881:854:416:o;10273:435::-;10546:10;10538:6;10534:23;10523:9;10516:42;10594:6;10589:2;10578:9;10574:18;10567:34;10637:2;10632;10621:9;10617:18;10610:30;10497:4;10657:45;10698:2;10687:9;10683:18;10675:6;10657:45;:::i;10713:184::-;10765:77;10762:1;10755:88;10862:4;10859:1;10852:15;10886:4;10883:1;10876:15;10902:802;10996:6;11049:3;11037:9;11028:7;11024:23;11020:33;11017:53;;;11066:1;11063;11056:12;11017:53;11099:2;11093:9;11141:3;11133:6;11129:16;11211:6;11199:10;11196:22;11175:18;11163:10;11160:34;11157:62;11154:242;;;11252:77;11249:1;11242:88;11353:4;11350:1;11343:15;11381:4;11378:1;11371:15;11154:242;11416:10;11412:2;11405:22;;11464:9;11451:23;11443:6;11436:39;11536:2;11525:9;11521:18;11508:32;11503:2;11495:6;11491:15;11484:57;11602:2;11591:9;11587:18;11574:32;11569:2;11561:6;11557:15;11550:57;11668:2;11657:9;11653:18;11640:32;11635:2;11627:6;11623:15;11616:57;11692:6;11682:16;;;10902:802;;;;:::o;11709:271::-;11892:6;11884;11879:3;11866:33;11848:3;11918:16;;11943:13;;;11918:16;11709:271;-1:-1:-1;11709:271:416:o;11985:184::-;12037:77;12034:1;12027:88;12134:4;12131:1;12124:15;12158:4;12155:1;12148:15;12174:184;12226:77;12223:1;12216:88;12323:4;12320:1;12313:15;12347:4;12344:1;12337:15;12363:128;12403:3;12434:1;12430:6;12427:1;12424:13;12421:39;;;12440:18;;:::i;:::-;-1:-1:-1;12476:9:416;;12363:128::o;12496:195::-;12535:3;12566:66;12559:5;12556:77;12553:103;;12636:18;;:::i;:::-;-1:-1:-1;12683:1:416;12672:13;;12496:195::o;12696:125::-;12736:4;12764:1;12761;12758:8;12755:34;;;12769:18;;:::i;:::-;-1:-1:-1;12806:9:416;;12696:125::o;13338:184::-;13390:77;13387:1;13380:88;13487:4;13484:1;13477:15;13511:4;13508:1;13501:15;13527:120;13567:1;13593;13583:35;;13598:18;;:::i;:::-;-1:-1:-1;13632:9:416;;13527:120::o;13652:228::-;13692:7;13818:1;13750:66;13746:74;13743:1;13740:81;13735:1;13728:9;13721:17;13717:105;13714:131;;;13825:18;;:::i;:::-;-1:-1:-1;13865:9:416;;13652:228::o;13885:277::-;13981:6;14034:2;14022:9;14013:7;14009:23;14005:32;14002:52;;;14050:1;14047;14040:12;14002:52;14082:9;14076:16;14101:31;14126:5;14101:31;:::i;14644:184::-;14714:6;14767:2;14755:9;14746:7;14742:23;14738:32;14735:52;;;14783:1;14780;14773:12;14735:52;-1:-1:-1;14806:16:416;;14644:184;-1:-1:-1;14644:184:416:o;15894:236::-;15933:3;15961:18;16006:2;16003:1;15999:10;16036:2;16033:1;16029:10;16067:3;16063:2;16059:12;16054:3;16051:21;16048:47;;;16075:18;;:::i;:::-;16111:13;;15894:236;-1:-1:-1;;;;15894:236:416:o;16135:270::-;16174:7;16206:18;16251:2;16248:1;16244:10;16281:2;16278:1;16274:10;16337:3;16333:2;16329:12;16324:3;16321:21;16314:3;16307:11;16300:19;16296:47;16293:73;;;16346:18;;:::i;:::-;16386:13;;16135:270;-1:-1:-1;;;;16135:270:416:o;16410:229::-;16449:4;16478:18;16546:10;;;;16516;;16568:12;;;16565:38;;;16583:18;;:::i;:::-;16620:13;;16410:229;-1:-1:-1;;;16410:229:416:o;16644:272::-;16750:6;16758;16811:2;16799:9;16790:7;16786:23;16782:32;16779:52;;;16827:1;16824;16817:12;16779:52;-1:-1:-1;;16850:16:416;;16906:2;16891:18;;;16885:25;16850:16;;16885:25;;-1:-1:-1;16644:272:416:o;16921:655::-;16960:7;16992:66;17084:1;17081;17077:9;17112:1;17109;17105:9;17157:1;17153:2;17149:10;17146:1;17143:17;17138:2;17134;17130:11;17126:35;17123:61;;;17164:18;;:::i;:::-;17203:66;17295:1;17292;17288:9;17342:1;17338:2;17333:11;17330:1;17326:19;17321:2;17317;17313:11;17309:37;17306:63;;;17349:18;;:::i;:::-;17395:1;17392;17388:9;17378:19;;17442:1;17438:2;17433:11;17430:1;17426:19;17421:2;17417;17413:11;17409:37;17406:63;;;17449:18;;:::i;:::-;17514:1;17510:2;17505:11;17502:1;17498:19;17493:2;17489;17485:11;17481:37;17478:63;;;17521:18;;:::i;:::-;-1:-1:-1;;;17561:9:416;;;;;16921:655;-1:-1:-1;;;16921:655:416:o;17581:308::-;17620:1;17646;17636:35;;17651:18;;:::i;:::-;17768:66;17765:1;17762:73;17693:66;17690:1;17687:73;17683:153;17680:179;;;17839:18;;:::i;:::-;-1:-1:-1;17873:10:416;;17581:308::o;17894:112::-;17926:1;17952;17942:35;;17957:18;;:::i;:::-;-1:-1:-1;17991:9:416;;17894:112::o;18011:246::-;18051:4;18080:34;18164:10;;;;18134;;18186:12;;;18183:38;;;18201:18;;:::i;18262:253::-;18302:3;18330:34;18391:2;18388:1;18384:10;18421:2;18418:1;18414:10;18452:3;18448:2;18444:12;18439:3;18436:21;18433:47;;;18460:18;;:::i;18520:325::-;18608:6;18603:3;18596:19;18660:6;18653:5;18646:4;18641:3;18637:14;18624:43;;18712:1;18705:4;18696:6;18691:3;18687:16;18683:27;18676:38;18578:3;18834:4;18764:66;18759:2;18751:6;18747:15;18743:88;18738:3;18734:98;18730:109;18723:116;;18520:325;;;;:::o;18850:502::-;19091:2;19080:9;19073:21;19054:4;19117:61;19174:2;19163:9;19159:18;19151:6;19143;19117:61;:::i;:::-;19226:9;19218:6;19214:22;19209:2;19198:9;19194:18;19187:50;19254:49;19296:6;19288;19280;19254:49;:::i;:::-;19246:57;;;19339:6;19334:2;19323:9;19319:18;19312:34;18850:502;;;;;;;;:::o;19357:195::-;19395:4;19432;19429:1;19425:12;19464:4;19461:1;19457:12;19489:3;19484;19481:12;19478:38;;;19496:18;;:::i;:::-;19533:13;;;19357:195;-1:-1:-1;;;19357:195:416:o;19557:157::-;19587:1;19621:4;19618:1;19614:12;19645:3;19635:37;;19652:18;;:::i;:::-;19704:3;19697:4;19694:1;19690:12;19686:22;19681:27;;;19557:157;;;;:::o","linkReferences":{},"immutableReferences":{"106574":[{"start":1999,"length":32},{"start":17022,"length":32}],"106577":[{"start":3015,"length":32},{"start":7818,"length":32},{"start":7952,"length":32},{"start":11739,"length":32},{"start":12077,"length":32},{"start":16565,"length":32},{"start":16864,"length":32}],"106580":[{"start":2848,"length":32},{"start":9136,"length":32},{"start":11538,"length":32},{"start":11832,"length":32},{"start":12438,"length":32},{"start":16831,"length":32},{"start":18030,"length":32},{"start":18287,"length":32},{"start":18500,"length":32},{"start":20763,"length":32},{"start":21319,"length":32}],"106584":[{"start":2797,"length":32},{"start":4060,"length":32},{"start":7546,"length":32},{"start":7612,"length":32},{"start":11977,"length":32},{"start":12584,"length":32},{"start":12679,"length":32}],"106588":[{"start":1226,"length":32},{"start":8625,"length":32},{"start":12121,"length":32},{"start":17260,"length":32}],"106592":[{"start":2313,"length":32},{"start":9698,"length":32},{"start":13881,"length":32}],"106596":[{"start":1341,"length":32},{"start":6600,"length":32},{"start":10798,"length":32},{"start":13599,"length":32},{"start":14972,"length":32}],"106600":[{"start":1628,"length":32},{"start":6150,"length":32},{"start":13946,"length":32}],"106603":[{"start":2714,"length":32},{"start":9555,"length":32}],"106607":[{"start":1796,"length":32},{"start":12378,"length":32},{"start":12485,"length":32},{"start":12536,"length":32}],"109197":[{"start":2254,"length":32},{"start":6870,"length":32},{"start":7076,"length":32},{"start":8310,"length":32}],"109200":[{"start":1411,"length":32},{"start":6933,"length":32},{"start":8373,"length":32}]}},"methodIdentifiers":{"absolutePrestate()":"8d450a95","addLocalData(uint256,uint256,uint256)":"f8f43ff6","anchorStateRegistry()":"5c0cba33","attack(bytes32,uint256,bytes32)":"472777c6","challengeRootL2Block((bytes32,bytes32,bytes32,bytes32),bytes)":"01935130","challenger()":"534db0e2","claimCredit(address)":"60e27464","claimData(uint256)":"c6f0308c","claimDataLen()":"8980e0cc","claims(bytes32)":"eff0f592","clockExtension()":"6b6716c0","createdAt()":"cf09e0d0","credit(address)":"d5d44d80","defend(bytes32,uint256,bytes32)":"7b0f0adc","extraData()":"609d3334","gameCreator()":"37b1b229","gameData()":"fa24f743","gameType()":"bbdc02db","getChallengerDuration(uint256)":"bd8da956","getNumToResolve(uint256)":"5a5fa2d9","getRequiredBond(uint128)":"c395e1ca","initialize()":"8129fc1c","l1Head()":"6361506d","l2BlockNumber()":"8b85902b","l2BlockNumberChallenged()":"3e3ac912","l2BlockNumberChallenger()":"30dbe570","l2ChainId()":"d6ae3cd5","maxClockDuration()":"dabd396d","maxGameDepth()":"fa315aa9","move(bytes32,uint256,bytes32,bool)":"6f034409","proposer()":"a8e4fb90","resolutionCheckpoints(uint256)":"a445ece6","resolve()":"2810e1d6","resolveClaim(uint256,uint256)":"03c2924d","resolvedAt()":"19effeb4","resolvedSubgames(uint256)":"fe2bbeb2","rootClaim()":"bcef3b55","splitDepth()":"ec5e6308","startingBlockNumber()":"70872aa5","startingOutputRoot()":"57da950e","startingRootHash()":"25fc2ace","status()":"200d2ed2","step(uint256,bool,bytes,bytes)":"d8cc1a3c","subgames(uint256,uint256)":"2ad69aeb","version()":"54fd4d50","vm()":"3a768463","weth()":"3fc8cef3"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint32\"},{\"internalType\":\"Claim\",\"name\":\"_absolutePrestate\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_maxGameDepth\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_splitDepth\",\"type\":\"uint256\"},{\"internalType\":\"Duration\",\"name\":\"_clockExtension\",\"type\":\"uint64\"},{\"internalType\":\"Duration\",\"name\":\"_maxClockDuration\",\"type\":\"uint64\"},{\"internalType\":\"contract IBigStepper\",\"name\":\"_vm\",\"type\":\"address\"},{\"internalType\":\"contract IDelayedWETH\",\"name\":\"_weth\",\"type\":\"address\"},{\"internalType\":\"contract IAnchorStateRegistry\",\"name\":\"_anchorStateRegistry\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_l2ChainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_challenger\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AnchorRootNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BadAuth\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BlockNumberMatches\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotDefendRootClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimAboveSplit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimAlreadyResolved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClockNotExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClockTimeExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ContentLengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateStep\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyItem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GameDepthExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GameNotInProgress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectBondAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidChallengePeriod\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClockExtension\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDataRemainder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDisputedClaimIndex\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidHeader\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidHeaderRLP\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLocalIdent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOutputRootProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidParent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPrestate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSplitDepth\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L2BlockNumberChallenged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxDepthTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoCreditToClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfOrderResolution\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnexpectedList\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"Claim\",\"name\":\"rootClaim\",\"type\":\"bytes32\"}],\"name\":\"UnexpectedRootClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnexpectedString\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidStep\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"parentIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"Claim\",\"name\":\"claim\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"name\":\"Move\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum GameStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"Resolved\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"absolutePrestate\",\"outputs\":[{\"internalType\":\"Claim\",\"name\":\"absolutePrestate_\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_ident\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_execLeafIdx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"}],\"name\":\"addLocalData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"anchorStateRegistry\",\"outputs\":[{\"internalType\":\"contract IAnchorStateRegistry\",\"name\":\"registry_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Claim\",\"name\":\"_disputed\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_parentIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"}],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"messagePasserStorageRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"latestBlockhash\",\"type\":\"bytes32\"}],\"internalType\":\"struct Types.OutputRootProof\",\"name\":\"_outputRootProof\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_headerRLP\",\"type\":\"bytes\"}],\"name\":\"challengeRootL2Block\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"challenger\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"challenger_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"claimCredit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"claimData\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"parentIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"counteredBy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"bond\",\"type\":\"uint128\"},{\"internalType\":\"Claim\",\"name\":\"claim\",\"type\":\"bytes32\"},{\"internalType\":\"Position\",\"name\":\"position\",\"type\":\"uint128\"},{\"internalType\":\"Clock\",\"name\":\"clock\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimDataLen\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"len_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Hash\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"clockExtension\",\"outputs\":[{\"internalType\":\"Duration\",\"name\":\"clockExtension_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"createdAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"credit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Claim\",\"name\":\"_disputed\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_parentIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"}],\"name\":\"defend\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"extraData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameCreator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"creator_\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameData\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint32\"},{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameType\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimIndex\",\"type\":\"uint256\"}],\"name\":\"getChallengerDuration\",\"outputs\":[{\"internalType\":\"Duration\",\"name\":\"duration_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimIndex\",\"type\":\"uint256\"}],\"name\":\"getNumToResolve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numRemainingChildren_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Position\",\"name\":\"_position\",\"type\":\"uint128\"}],\"name\":\"getRequiredBond\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"requiredBond_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Head\",\"outputs\":[{\"internalType\":\"Hash\",\"name\":\"l1Head_\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2BlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"l2BlockNumber_\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2BlockNumberChallenged\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2BlockNumberChallenger\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2ChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"l2ChainId_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxClockDuration\",\"outputs\":[{\"internalType\":\"Duration\",\"name\":\"maxClockDuration_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxGameDepth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxGameDepth_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Claim\",\"name\":\"_disputed\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_challengeIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"_isAttack\",\"type\":\"bool\"}],\"name\":\"move\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"proposer_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"resolutionCheckpoints\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"initialCheckpointComplete\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"subgameIndex\",\"type\":\"uint32\"},{\"internalType\":\"Position\",\"name\":\"leftmostPosition\",\"type\":\"uint128\"},{\"internalType\":\"address\",\"name\":\"counteredBy\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"enum GameStatus\",\"name\":\"status_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_numToResolve\",\"type\":\"uint256\"}],\"name\":\"resolveClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolvedAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"resolvedSubgames\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootClaim\",\"outputs\":[{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"splitDepth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"splitDepth_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startingBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"startingBlockNumber_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startingOutputRoot\",\"outputs\":[{\"internalType\":\"Hash\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"l2BlockNumber\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startingRootHash\",\"outputs\":[{\"internalType\":\"Hash\",\"name\":\"startingRootHash_\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enum GameStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_isAttack\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_stateData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"step\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"subgames\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vm\",\"outputs\":[{\"internalType\":\"contract IBigStepper\",\"name\":\"vm_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"weth\",\"outputs\":[{\"internalType\":\"contract IDelayedWETH\",\"name\":\"weth_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"UnexpectedRootClaim(bytes32)\":[{\"params\":{\"rootClaim\":\"is the claim that was unexpected.\"}}]},\"kind\":\"dev\",\"methods\":{\"addLocalData(uint256,uint256,uint256)\":{\"params\":{\"_execLeafIdx\":\"The index of the leaf claim in an execution subgame that requires the local data for a step.\",\"_ident\":\"The local identifier of the data to post.\",\"_partOffset\":\"The offset of the data to post.\"}},\"attack(bytes32,uint256,bytes32)\":{\"params\":{\"_claim\":\"The `Claim` at the relative attack position.\",\"_disputed\":\"The `Claim` being attacked.\",\"_parentIndex\":\"Index of the `Claim` to attack in the `claimData` array. This must match the `_disputed` claim.\"}},\"challengeRootL2Block((bytes32,bytes32,bytes32,bytes32),bytes)\":{\"params\":{\"_headerRLP\":\"The RLP-encoded L2 block header.\",\"_outputRootProof\":\"The output root proof.\"}},\"claimCredit(address)\":{\"params\":{\"_recipient\":\"The owner and recipient of the credit.\"}},\"constructor\":{\"params\":{\"_absolutePrestate\":\"The absolute prestate of the instruction trace.\",\"_anchorStateRegistry\":\"The contract that stores the anchor state for each game type.\",\"_challenger\":\"Address that is allowed to challenge instances of this contract.\",\"_clockExtension\":\"The clock extension to perform when the remaining duration is less than the extension.\",\"_gameType\":\"The type ID of the game.\",\"_l2ChainId\":\"Chain ID of the L2 network this contract argues about.\",\"_maxClockDuration\":\"The maximum amount of time that may accumulate on a team's chess clock.\",\"_maxGameDepth\":\"The maximum depth of bisection.\",\"_proposer\":\"Address that is allowed to create instances of this contract.\",\"_splitDepth\":\"The final depth of the output bisection portion of the game.\",\"_vm\":\"An onchain VM that performs single instruction steps on an FPP trace.\",\"_weth\":\"WETH contract for holding ETH.\"}},\"defend(bytes32,uint256,bytes32)\":{\"params\":{\"_claim\":\"The `Claim` at the relative defense position.\",\"_parentIndex\":\"Index of the claim to defend in the `claimData` array. This must match the `_disputed` claim.\"}},\"extraData()\":{\"details\":\"`clones-with-immutable-args` argument #4\",\"returns\":{\"extraData_\":\"Any extra data supplied to the dispute game contract by the creator.\"}},\"gameCreator()\":{\"details\":\"`clones-with-immutable-args` argument #1\",\"returns\":{\"creator_\":\"The creator of the dispute game.\"}},\"gameData()\":{\"returns\":{\"extraData_\":\"Any extra data supplied to the dispute game contract by the creator.\",\"gameType_\":\"The type of proof system being used.\",\"rootClaim_\":\"The root claim of the DisputeGame.\"}},\"gameType()\":{\"details\":\"The reference impl should be entirely different depending on the type (fault, validity)      i.e. The game type should indicate the security model.\",\"returns\":{\"gameType_\":\"The type of proof system being used.\"}},\"getChallengerDuration(uint256)\":{\"params\":{\"_claimIndex\":\"The index of the subgame root claim.\"},\"returns\":{\"duration_\":\"The time elapsed on the potential challenger to `_claimIndex`'s chess clock.\"}},\"getNumToResolve(uint256)\":{\"params\":{\"_claimIndex\":\"The subgame root claim's index within `claimData`.\"},\"returns\":{\"numRemainingChildren_\":\"The number of children that still need to be checked to resolve the subgame.\"}},\"getRequiredBond(uint128)\":{\"params\":{\"_position\":\"The position of the bonded interaction.\"},\"returns\":{\"requiredBond_\":\"The required ETH bond for the given move, in wei.\"}},\"initialize()\":{\"details\":\"This function may only be called once.\"},\"l1Head()\":{\"details\":\"`clones-with-immutable-args` argument #3\",\"returns\":{\"l1Head_\":\"The parent hash of the L1 block when the dispute game was created.\"}},\"move(bytes32,uint256,bytes32,bool)\":{\"params\":{\"_challengeIndex\":\"The index of the claim being moved against. This must match the `_disputed` claim.\",\"_claim\":\"The claim at the next logical position in the game.\",\"_isAttack\":\"Whether or not the move is an attack or defense.\"}},\"resolve()\":{\"details\":\"May only be called if the `status` is `IN_PROGRESS`.\",\"returns\":{\"status_\":\"The status of the game after resolution.\"}},\"resolveClaim(uint256,uint256)\":{\"details\":\"This function must be called bottom-up in the DAG      A subgame is a tree of claims that has a maximum depth of 1.      A subgame root claims is valid if, and only if, all of its child claims are invalid.      At the deepest level in the DAG, a claim is invalid if there's a successful step against it.\",\"params\":{\"_claimIndex\":\"The index of the subgame root claim to resolve.\",\"_numToResolve\":\"The number of subgames to resolve in this call. If the input is `0`, and this is the first                      page, this function will attempt to check all of the subgame's children at once.\"}},\"rootClaim()\":{\"details\":\"`clones-with-immutable-args` argument #2\",\"returns\":{\"rootClaim_\":\"The root claim of the DisputeGame.\"}},\"step(uint256,bool,bytes,bytes)\":{\"details\":\"This function should point to a fault proof processor in order to execute      a step in the fault proof program on-chain. The interface of the fault proof      processor contract should adhere to the `IBigStepper` interface.\",\"params\":{\"_claimIndex\":\"The index of the challenged claim within `claimData`.\",\"_isAttack\":\"Whether or not the step is an attack or a defense.\",\"_proof\":\"Proof to access memory nodes in the VM's merkle state tree.\",\"_stateData\":\"The stateData of the step is the preimage of the claim at the given        prestate, which is at `_stateIndex` if the move is an attack and `_claimIndex` if        the move is a defense. If the step is an attack on the first instruction, it is        the absolute prestate of the fault proof VM.\"}}},\"title\":\"PermissionedDisputeGame\",\"version\":1},\"userdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"notice\":\"Thrown when a dispute game has already been initialized.\"}],\"AnchorRootNotFound()\":[{\"notice\":\"Thrown when an anchor root is not found for a given game type.\"}],\"BadAuth()\":[{\"notice\":\"Thrown when an unauthorized address attempts to interact with the game.\"}],\"BlockNumberMatches()\":[{\"notice\":\"Thrown when there is a match between the block number in the output root proof and the block number         claimed in the dispute game.\"}],\"BondTransferFailed()\":[{\"notice\":\"Thrown when the transfer of credit to a recipient account reverts.\"}],\"CannotDefendRootClaim()\":[{\"notice\":\"Thrown when a defense against the root claim is attempted.\"}],\"ClaimAboveSplit()\":[{\"notice\":\"Thrown when a parent output root is attempted to be found on a claim that is in         the output root portion of the tree.\"}],\"ClaimAlreadyExists()\":[{\"notice\":\"Thrown when a claim is attempting to be made that already exists.\"}],\"ClaimAlreadyResolved()\":[{\"notice\":\"Thrown when resolving a claim that has already been resolved.\"}],\"ClockNotExpired()\":[{\"notice\":\"Thrown when the game is attempted to be resolved too early.\"}],\"ClockTimeExceeded()\":[{\"notice\":\"Thrown when a move is attempted to be made after the clock has timed out.\"}],\"ContentLengthMismatch()\":[{\"notice\":\"The length of the content must be greater than the RLP item length\"}],\"DuplicateStep()\":[{\"notice\":\"Thrown when trying to step against a claim for a second time, after it has already been countered with         an instruction step.\"}],\"EmptyItem()\":[{\"notice\":\"The length of an RLP item must be greater than zero to be decodable\"}],\"GameDepthExceeded()\":[{\"notice\":\"Thrown when a move is attempted to be made at or greater than the max depth of the game.\"}],\"GameNotInProgress()\":[{\"notice\":\"Thrown when an action that requires the game to be `IN_PROGRESS` is invoked when         the game is not in progress.\"}],\"IncorrectBondAmount()\":[{\"notice\":\"Thrown when a supplied bond is not equal to the required bond amount to cover the cost of the interaction.\"}],\"InvalidChallengePeriod()\":[{\"notice\":\"Thrown on deployment if the PreimageOracle challenge period is too high.\"}],\"InvalidClockExtension()\":[{\"notice\":\"Thrown on deployment if the max clock duration is less than or equal to the clock extension.\"}],\"InvalidDataRemainder()\":[{\"notice\":\"The RLP item has an invalid data remainder\"}],\"InvalidDisputedClaimIndex()\":[{\"notice\":\"Thrown when a disputed claim does not match its index in the game.\"}],\"InvalidHeader()\":[{\"notice\":\"Invalid RLP header for RLP item\"}],\"InvalidHeaderRLP()\":[{\"notice\":\"Thrown when header RLP is invalid with respect to the block hash in an output root proof.\"}],\"InvalidLocalIdent()\":[{\"notice\":\"Thrown when an invalid local identifier is passed to the `addLocalData` function.\"}],\"InvalidOutputRootProof()\":[{\"notice\":\"Thrown when an output root proof is invalid.\"}],\"InvalidParent()\":[{\"notice\":\"Thrown when a step is attempted above the maximum game depth.\"}],\"InvalidPrestate()\":[{\"notice\":\"Thrown when an invalid prestate is supplied to `step`.\"}],\"InvalidSplitDepth()\":[{\"notice\":\"Thrown on deployment if the split depth is greater than or equal to the max         depth of the game.\"}],\"L2BlockNumberChallenged()\":[{\"notice\":\"Thrown when the L2 block number claim has already been challenged.\"}],\"MaxDepthTooLarge()\":[{\"notice\":\"Thrown on deployment if the max depth is greater than `LibPosition.`\"}],\"NoCreditToClaim()\":[{\"notice\":\"Thrown when a credit claim is attempted for a value of 0.\"}],\"OutOfOrderResolution()\":[{\"notice\":\"Thrown when resolving claims out of order.\"}],\"UnexpectedList()\":[{\"notice\":\"Decoded item type for bytes is not a string item\"}],\"UnexpectedRootClaim(bytes32)\":[{\"notice\":\"Thrown when the root claim has an unexpected VM status.         Some games can only start with a root-claim with a specific status.\"}],\"UnexpectedString()\":[{\"notice\":\"The decoded item type for list is not a list item\"}],\"ValidStep()\":[{\"notice\":\"Thrown when a step is made that computes the expected post state correctly.\"}]},\"events\":{\"Move(uint256,bytes32,address)\":{\"notice\":\"Emitted when a new claim is added to the DAG by `claimant`\"},\"Resolved(uint8)\":{\"notice\":\"Emitted when the game is resolved.\"}},\"kind\":\"user\",\"methods\":{\"absolutePrestate()\":{\"notice\":\"Returns the absolute prestate of the instruction trace.\"},\"addLocalData(uint256,uint256,uint256)\":{\"notice\":\"Posts the requested local data to the VM's `PreimageOralce`.\"},\"anchorStateRegistry()\":{\"notice\":\"Returns the anchor state registry contract.\"},\"attack(bytes32,uint256,bytes32)\":{\"notice\":\"Attack a disagreed upon `Claim`.\"},\"challengeRootL2Block((bytes32,bytes32,bytes32,bytes32),bytes)\":{\"notice\":\"Challenges the root L2 block number by providing the preimage of the output root and the L2 block header         and showing that the committed L2 block number is incorrect relative to the claimed L2 block number.\"},\"challenger()\":{\"notice\":\"Returns the challenger address.\"},\"claimCredit(address)\":{\"notice\":\"Claim the credit belonging to the recipient address.\"},\"claimData(uint256)\":{\"notice\":\"An append-only array of all claims made during the dispute game.\"},\"claimDataLen()\":{\"notice\":\"Returns the length of the `claimData` array.\"},\"claims(bytes32)\":{\"notice\":\"A mapping to allow for constant-time lookups of existing claims.\"},\"clockExtension()\":{\"notice\":\"Returns the clock extension constant.\"},\"createdAt()\":{\"notice\":\"The starting timestamp of the game\"},\"credit(address)\":{\"notice\":\"Credited balances for winning participants.\"},\"defend(bytes32,uint256,bytes32)\":{\"notice\":\"Defend an agreed upon `Claim`._disputed The `Claim` being defended.\"},\"extraData()\":{\"notice\":\"Getter for the extra data.\"},\"gameCreator()\":{\"notice\":\"Getter for the creator of the dispute game.\"},\"gameData()\":{\"notice\":\"A compliant implementation of this interface should return the components of the         game UUID's preimage provided in the cwia payload. The preimage of the UUID is         constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes         concatenation.\"},\"gameType()\":{\"notice\":\"Getter for the game type.\"},\"getChallengerDuration(uint256)\":{\"notice\":\"Returns the amount of time elapsed on the potential challenger to `_claimIndex`'s chess clock. Maxes         out at `MAX_CLOCK_DURATION`.\"},\"getNumToResolve(uint256)\":{\"notice\":\"Returns the number of children that still need to be resolved in order to fully resolve a subgame rooted         at `_claimIndex`.\"},\"getRequiredBond(uint128)\":{\"notice\":\"Returns the required bond for a given move kind.\"},\"initialize()\":{\"notice\":\"Initializes the contract.\"},\"l1Head()\":{\"notice\":\"Getter for the parent hash of the L1 block when the dispute game was created.\"},\"l2BlockNumber()\":{\"notice\":\"The l2BlockNumber of the disputed output root in the `L2OutputOracle`.\"},\"l2BlockNumberChallenged()\":{\"notice\":\"Flag for whether or not the L2 block number claim has been invalidated via `challengeRootL2Block`.\"},\"l2BlockNumberChallenger()\":{\"notice\":\"The challenger of the L2 block number claim. Should always be `address(0)` if `l2BlockNumberChallenged`         is `false`. Should be the address of the challenger if `l2BlockNumberChallenged` is `true`.\"},\"l2ChainId()\":{\"notice\":\"Returns the chain ID of the L2 network this contract argues about.\"},\"maxClockDuration()\":{\"notice\":\"Returns the max clock duration.\"},\"maxGameDepth()\":{\"notice\":\"Returns the max game depth.\"},\"move(bytes32,uint256,bytes32,bool)\":{\"notice\":\"Generic move function, used for both `attack` and `defend` moves._disputed The disputed `Claim`.\"},\"proposer()\":{\"notice\":\"Returns the proposer address.\"},\"resolutionCheckpoints(uint256)\":{\"notice\":\"A mapping of claim indices to resolution checkpoints.\"},\"resolve()\":{\"notice\":\"If all necessary information has been gathered, this function should mark the game         status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of         the resolved game. It is at this stage that the bonds should be awarded to the         necessary parties.\"},\"resolveClaim(uint256,uint256)\":{\"notice\":\"Resolves the subgame rooted at the given claim index. `_numToResolve` specifies how many children of         the subgame will be checked in this call. If `_numToResolve` is less than the number of children, an         internal cursor will be updated and this function may be called again to complete resolution of the         subgame.\"},\"resolvedAt()\":{\"notice\":\"The timestamp of the game's global resolution.\"},\"resolvedSubgames(uint256)\":{\"notice\":\"A mapping of resolved subgames rooted at a claim index.\"},\"rootClaim()\":{\"notice\":\"Getter for the root claim.\"},\"splitDepth()\":{\"notice\":\"Returns the split depth.\"},\"startingBlockNumber()\":{\"notice\":\"Only the starting block number of the game.\"},\"startingOutputRoot()\":{\"notice\":\"The latest finalized output root, serving as the anchor for output bisection.\"},\"startingRootHash()\":{\"notice\":\"Only the starting output root of the game.\"},\"status()\":{\"notice\":\"Returns the current status of the game.\"},\"step(uint256,bool,bytes,bytes)\":{\"notice\":\"Perform an instruction step via an on-chain fault proof processor.\"},\"subgames(uint256,uint256)\":{\"notice\":\"A mapping of subgames rooted at a claim index to other claim indices in the subgame.\"},\"version()\":{\"notice\":\"Semantic version.\"},\"vm()\":{\"notice\":\"Returns the address of the VM.\"},\"weth()\":{\"notice\":\"Returns the WETH contract for holding ETH.\"}},\"notice\":\"PermissionedDisputeGame is a contract that inherits from `FaultDisputeGame`, and contains two roles:         - The `challenger` role, which is allowed to challenge a dispute.         - The `proposer` role, which is allowed to create proposals and participate in their game.         This contract exists as a way for networks to support the fault proof iteration of the OptimismPortal         contract without needing to support a fully permissionless system. Permissionless systems can introduce         costs that certain networks may not wish to support. This contract can also be used as a fallback mechanism         in case of a failure in the permissionless fault proof system in the stage one release.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/PermissionedDisputeGame.sol\":\"PermissionedDisputeGame\"},\"evmVersion\":\"london\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/solady/src/utils/Clone.sol\":{\"keccak256\":\"0xb408dc90294bacd394e59c83619e7dc76f45c83ad6f8e923eb07d3a5bab89f22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3abeb55ad062c4b29b5b5edab6167de36615c51621ef71ef3ddfd9f6735a93b\",\"dweb:/ipfs/Qmboh4zX6ZgFVhetUhZGJ14kKXiaGeB9bW3Vseg2MLMGHW\"]},\"lib/solady/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x1fbad6f61bd3e5875e6b0060b67626cb1ccb9542c0da368a44eb3870c9a9e160\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5189fcd5ecff0f449475cf3183e9d6b509cd1221555aba6cd76c70b097cc8260\",\"dweb:/ipfs/Qmbt34Kf5h2DeYzmqXtg3jprYxDCFdENtf41NgCdcARA7u\"]},\"src/cannon/interfaces/IPreimageOracle.sol\":{\"keccak256\":\"0x53e6cada4297de6604a9f4b8f47b6d38a3506b8b1ae1a0f4bb1abb5276396bca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39a5645dde6d80af9fb08044b8c8555b5d09a66314de00d5f92dc33dfb8c10a5\",\"dweb:/ipfs/QmQDJY2AudK3CFR2J8mC4uVtiiPnzCVHAyNwAxPmyNd6n3\"]},\"src/dispute/FaultDisputeGame.sol\":{\"keccak256\":\"0x347c38c8514725a9e094d82de89a11cd3fe21fd765e106800bdbe497c7f75d5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39ea59df1ff2d22275b0535203196d11c1f6eda82de466c813a69659c384ff64\",\"dweb:/ipfs/QmaX35sCPRQJ8pQMDu2Rzaw51AeB3XicJCkfwyFqTMtNMm\"]},\"src/dispute/PermissionedDisputeGame.sol\":{\"keccak256\":\"0x25816eacfe346264a7636be1c798265918c7639accbcd15ce511390a63237be9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcc8b98dd6abb3574dcd8b1558b880fd1402c4cf51c68fac9cb541345f703afa\",\"dweb:/ipfs/QmTUfrgFA3vNpCfXbyTPswLhw6h2TWuVEqW7QyxqYmZAyF\"]},\"src/dispute/interfaces/IAnchorStateRegistry.sol\":{\"keccak256\":\"0x54756eef4ee83e2abf35752d2b68b775c5a6d09c425489def39baca81af92739\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b38629f62e2990b8c7b1246d1fd6c87c3bd1aaebf496098cb268a5d0b4037269\",\"dweb:/ipfs/QmbUEix26siwjHaTfUr1PfBoFyZuwYxDTc4udbUGxmAhYs\"]},\"src/dispute/interfaces/IBigStepper.sol\":{\"keccak256\":\"0xc92ee3069677b903826c83d5b4e46e3be462f9ccf1d95e72a12b1052e3451f0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f93692bd3c8d9533ab8024ce2df6d880328826d1a92fdb9cf45301e2d0c65884\",\"dweb:/ipfs/QmUcmbjTw9gnCUNasgmQjVbSgcCPKZ1FQyA31dH4k5Nc75\"]},\"src/dispute/interfaces/IDelayedWETH.sol\":{\"keccak256\":\"0x0bb035e9bbb411696841ea292eeed6d4463c3c3eee7d6c5d8e38a101e8a4ff04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0477cf2c137392d35081f23bfd7f3565881767dcb1489a62e7e80b3c178cfce8\",\"dweb:/ipfs/QmTjALjrHg5rvhjfCKPmXLTgkMNneECWaqoarunSoVS37G\"]},\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0xa4d3617892dfee02890ea135e778ed0207aa8545c97cb2a421bae7c1a659baa0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e31653e3463dbc3f3b572ca4a1198d9aadc7d8606a2b690a58e2c082a0d0090\",\"dweb:/ipfs/QmdbxJK4T5Hu652cSkxpAjYPxrK1i5ZM62oyopzmAzRn6M\"]},\"src/dispute/interfaces/IDisputeGameFactory.sol\":{\"keccak256\":\"0xcab52326762c570297a6f62addde4e4f9296bba85f2f1470f52a3c64f57c5b41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40decdf2e72938f55434d300ae5d2a607f1186c8595ff1cc3ce6c3f6d312b701\",\"dweb:/ipfs/QmaQEHn1FPjvinQTNth9vEx84iDEwtg2cVk9bLpnwLyzot\"]},\"src/dispute/interfaces/IFaultDisputeGame.sol\":{\"keccak256\":\"0x9655abdda7d33496f012e5a8bf492c7733573024cc7779dc79fb4553f11e9f0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f8f0acce831c36385a4b06a5142ddfc2dbe2e7c403193df2585293ef2821c03\",\"dweb:/ipfs/QmR4XJ8rG1aiR7NgyTNbQ4swe8CFWkytudbWiKKMaqiCMH\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/interfaces/IWETH.sol\":{\"keccak256\":\"0x3858f6c0ce3ec7978b1ea1772484c25aec7c8c480ceaf18239f726fdd06fdd1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b72cf3bc31324409480e9ae6eb3e2654da8dff3cbf9f2136b19fe714293b3766\",\"dweb:/ipfs/QmTW3JiFUo8pYhDbthPH8ZSp5f1nmdga4CSzo4YdEzppnM\"]},\"src/dispute/lib/Errors.sol\":{\"keccak256\":\"0x59f7adeec32d10de65aa9417424dfc702c3f483a3f34b368924b141bbd33c2f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9c47a4eacbbe2a2eaa313c0fe3081af0179d8ae3b2c0859d13a756dd30f930bc\",\"dweb:/ipfs/QmUQuQCdhB1WeRhcHhkVB3fUbPcWxK2V3jtUxSpfNKmgqs\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0x7c5f19f8f54f06de2ce1c6cdcc5c7af65ac405130a4066cdaf146ca315818241\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06905e5ede94784e32748ad60557cb0b0829089d65430518e7042b80d2f64e2d\",\"dweb:/ipfs/QmeGKMmnFnow2VrRvTSPavCrToqQ3qDpEaR1tVoK6Hzg8K\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x02eef648a47889c21c8261101c99a491e8497f9f7d088b66dffa4ded6afd7855\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88001eed40a7dbbc5193d9671e1c05273dce1ab2a95bb866543421d2863ed04e\",\"dweb:/ipfs/QmSNU8mFUFxhVdLBToL8r3v7tpugyvPDbDU4vkc3Xd4omX\"]},\"src/dispute/lib/Types.sol\":{\"keccak256\":\"0x227948243b4be041de133e1adc4b1dd49e9c1f519e4b5ab7f18c5bc9740539b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ae2584956303586801a4c721ad39db90b8929101594f5bed10d77b28e66b3c11\",\"dweb:/ipfs/QmdoKT3UiTfBY3nBLjKRGJkngS7vq6exVQbuPqo5GwDCM1\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x5586d9715d8fbdd48245220f13a96573555fd847a333869e862ae186802e0311\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f34dbd5a0a8918120e226f549a8337bd6fc7176653159a85929ce6fe3d66e11\",\"dweb:/ipfs/QmQKnhRPMnhKBRLmV2C1BqAsPpQg8xVFXi7ZLuHU9XQ1BE\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPErrors.sol\":{\"keccak256\":\"0x2b7fa174e6c62962f7c3ce1960298d325ed0e5ff4ee3fd426848e88b4500eb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5528dd355691e6e2dffa3ecf11388f51e3bd29f27693c5dcd11be182559ba47\",\"dweb:/ipfs/QmTqZ5ZzBPwLYg3JNZttHZYaXv5zyzQfakSz4B8sYkAz42\"]},\"src/libraries/rlp/RLPReader.sol\":{\"keccak256\":\"0x27cbbc74d603b301e0e4bc4d33bbbeb88e369f1a91191a33d89ea52360e003db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba58dfd78089a51f06638fa6c0d2287c6254907ad89c4ad58b6fbb331d5d5a96\",\"dweb:/ipfs/QmUjC5Pm2MxPgYm9DfW1MasHj5jz7xXvej88778QuUoNgp\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"GameType","name":"_gameType","type":"uint32"},{"internalType":"Claim","name":"_absolutePrestate","type":"bytes32"},{"internalType":"uint256","name":"_maxGameDepth","type":"uint256"},{"internalType":"uint256","name":"_splitDepth","type":"uint256"},{"internalType":"Duration","name":"_clockExtension","type":"uint64"},{"internalType":"Duration","name":"_maxClockDuration","type":"uint64"},{"internalType":"contract IBigStepper","name":"_vm","type":"address"},{"internalType":"contract IDelayedWETH","name":"_weth","type":"address"},{"internalType":"contract IAnchorStateRegistry","name":"_anchorStateRegistry","type":"address"},{"internalType":"uint256","name":"_l2ChainId","type":"uint256"},{"internalType":"address","name":"_proposer","type":"address"},{"internalType":"address","name":"_challenger","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AnchorRootNotFound"},{"inputs":[],"type":"error","name":"BadAuth"},{"inputs":[],"type":"error","name":"BlockNumberMatches"},{"inputs":[],"type":"error","name":"BondTransferFailed"},{"inputs":[],"type":"error","name":"CannotDefendRootClaim"},{"inputs":[],"type":"error","name":"ClaimAboveSplit"},{"inputs":[],"type":"error","name":"ClaimAlreadyExists"},{"inputs":[],"type":"error","name":"ClaimAlreadyResolved"},{"inputs":[],"type":"error","name":"ClockNotExpired"},{"inputs":[],"type":"error","name":"ClockTimeExceeded"},{"inputs":[],"type":"error","name":"ContentLengthMismatch"},{"inputs":[],"type":"error","name":"DuplicateStep"},{"inputs":[],"type":"error","name":"EmptyItem"},{"inputs":[],"type":"error","name":"GameDepthExceeded"},{"inputs":[],"type":"error","name":"GameNotInProgress"},{"inputs":[],"type":"error","name":"IncorrectBondAmount"},{"inputs":[],"type":"error","name":"InvalidChallengePeriod"},{"inputs":[],"type":"error","name":"InvalidClockExtension"},{"inputs":[],"type":"error","name":"InvalidDataRemainder"},{"inputs":[],"type":"error","name":"InvalidDisputedClaimIndex"},{"inputs":[],"type":"error","name":"InvalidHeader"},{"inputs":[],"type":"error","name":"InvalidHeaderRLP"},{"inputs":[],"type":"error","name":"InvalidLocalIdent"},{"inputs":[],"type":"error","name":"InvalidOutputRootProof"},{"inputs":[],"type":"error","name":"InvalidParent"},{"inputs":[],"type":"error","name":"InvalidPrestate"},{"inputs":[],"type":"error","name":"InvalidSplitDepth"},{"inputs":[],"type":"error","name":"L2BlockNumberChallenged"},{"inputs":[],"type":"error","name":"MaxDepthTooLarge"},{"inputs":[],"type":"error","name":"NoCreditToClaim"},{"inputs":[],"type":"error","name":"OutOfOrderResolution"},{"inputs":[],"type":"error","name":"UnexpectedList"},{"inputs":[{"internalType":"Claim","name":"rootClaim","type":"bytes32"}],"type":"error","name":"UnexpectedRootClaim"},{"inputs":[],"type":"error","name":"UnexpectedString"},{"inputs":[],"type":"error","name":"ValidStep"},{"inputs":[{"internalType":"uint256","name":"parentIndex","type":"uint256","indexed":true},{"internalType":"Claim","name":"claim","type":"bytes32","indexed":true},{"internalType":"address","name":"claimant","type":"address","indexed":true}],"type":"event","name":"Move","anonymous":false},{"inputs":[{"internalType":"enum GameStatus","name":"status","type":"uint8","indexed":true}],"type":"event","name":"Resolved","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"absolutePrestate","outputs":[{"internalType":"Claim","name":"absolutePrestate_","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"_ident","type":"uint256"},{"internalType":"uint256","name":"_execLeafIdx","type":"uint256"},{"internalType":"uint256","name":"_partOffset","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addLocalData"},{"inputs":[],"stateMutability":"view","type":"function","name":"anchorStateRegistry","outputs":[{"internalType":"contract IAnchorStateRegistry","name":"registry_","type":"address"}]},{"inputs":[{"internalType":"Claim","name":"_disputed","type":"bytes32"},{"internalType":"uint256","name":"_parentIndex","type":"uint256"},{"internalType":"Claim","name":"_claim","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"attack"},{"inputs":[{"internalType":"struct Types.OutputRootProof","name":"_outputRootProof","type":"tuple","components":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"bytes32","name":"stateRoot","type":"bytes32"},{"internalType":"bytes32","name":"messagePasserStorageRoot","type":"bytes32"},{"internalType":"bytes32","name":"latestBlockhash","type":"bytes32"}]},{"internalType":"bytes","name":"_headerRLP","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"challengeRootL2Block"},{"inputs":[],"stateMutability":"view","type":"function","name":"challenger","outputs":[{"internalType":"address","name":"challenger_","type":"address"}]},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"claimCredit"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"claimData","outputs":[{"internalType":"uint32","name":"parentIndex","type":"uint32"},{"internalType":"address","name":"counteredBy","type":"address"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint128","name":"bond","type":"uint128"},{"internalType":"Claim","name":"claim","type":"bytes32"},{"internalType":"Position","name":"position","type":"uint128"},{"internalType":"Clock","name":"clock","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"claimDataLen","outputs":[{"internalType":"uint256","name":"len_","type":"uint256"}]},{"inputs":[{"internalType":"Hash","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"claims","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"clockExtension","outputs":[{"internalType":"Duration","name":"clockExtension_","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"createdAt","outputs":[{"internalType":"Timestamp","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"credit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"Claim","name":"_disputed","type":"bytes32"},{"internalType":"uint256","name":"_parentIndex","type":"uint256"},{"internalType":"Claim","name":"_claim","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"defend"},{"inputs":[],"stateMutability":"pure","type":"function","name":"extraData","outputs":[{"internalType":"bytes","name":"extraData_","type":"bytes"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"gameCreator","outputs":[{"internalType":"address","name":"creator_","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gameData","outputs":[{"internalType":"GameType","name":"gameType_","type":"uint32"},{"internalType":"Claim","name":"rootClaim_","type":"bytes32"},{"internalType":"bytes","name":"extraData_","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gameType","outputs":[{"internalType":"GameType","name":"gameType_","type":"uint32"}]},{"inputs":[{"internalType":"uint256","name":"_claimIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"getChallengerDuration","outputs":[{"internalType":"Duration","name":"duration_","type":"uint64"}]},{"inputs":[{"internalType":"uint256","name":"_claimIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"getNumToResolve","outputs":[{"internalType":"uint256","name":"numRemainingChildren_","type":"uint256"}]},{"inputs":[{"internalType":"Position","name":"_position","type":"uint128"}],"stateMutability":"view","type":"function","name":"getRequiredBond","outputs":[{"internalType":"uint256","name":"requiredBond_","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"pure","type":"function","name":"l1Head","outputs":[{"internalType":"Hash","name":"l1Head_","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"l2BlockNumber","outputs":[{"internalType":"uint256","name":"l2BlockNumber_","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l2BlockNumberChallenged","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l2BlockNumberChallenger","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l2ChainId","outputs":[{"internalType":"uint256","name":"l2ChainId_","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxClockDuration","outputs":[{"internalType":"Duration","name":"maxClockDuration_","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxGameDepth","outputs":[{"internalType":"uint256","name":"maxGameDepth_","type":"uint256"}]},{"inputs":[{"internalType":"Claim","name":"_disputed","type":"bytes32"},{"internalType":"uint256","name":"_challengeIndex","type":"uint256"},{"internalType":"Claim","name":"_claim","type":"bytes32"},{"internalType":"bool","name":"_isAttack","type":"bool"}],"stateMutability":"payable","type":"function","name":"move"},{"inputs":[],"stateMutability":"view","type":"function","name":"proposer","outputs":[{"internalType":"address","name":"proposer_","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"resolutionCheckpoints","outputs":[{"internalType":"bool","name":"initialCheckpointComplete","type":"bool"},{"internalType":"uint32","name":"subgameIndex","type":"uint32"},{"internalType":"Position","name":"leftmostPosition","type":"uint128"},{"internalType":"address","name":"counteredBy","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resolve","outputs":[{"internalType":"enum GameStatus","name":"status_","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"_claimIndex","type":"uint256"},{"internalType":"uint256","name":"_numToResolve","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"resolveClaim"},{"inputs":[],"stateMutability":"view","type":"function","name":"resolvedAt","outputs":[{"internalType":"Timestamp","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"resolvedSubgames","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"rootClaim","outputs":[{"internalType":"Claim","name":"rootClaim_","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"splitDepth","outputs":[{"internalType":"uint256","name":"splitDepth_","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"startingBlockNumber","outputs":[{"internalType":"uint256","name":"startingBlockNumber_","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"startingOutputRoot","outputs":[{"internalType":"Hash","name":"root","type":"bytes32"},{"internalType":"uint256","name":"l2BlockNumber","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"startingRootHash","outputs":[{"internalType":"Hash","name":"startingRootHash_","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"status","outputs":[{"internalType":"enum GameStatus","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"_claimIndex","type":"uint256"},{"internalType":"bool","name":"_isAttack","type":"bool"},{"internalType":"bytes","name":"_stateData","type":"bytes"},{"internalType":"bytes","name":"_proof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"step"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"subgames","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vm","outputs":[{"internalType":"contract IBigStepper","name":"vm_","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"weth","outputs":[{"internalType":"contract IDelayedWETH","name":"weth_","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"addLocalData(uint256,uint256,uint256)":{"params":{"_execLeafIdx":"The index of the leaf claim in an execution subgame that requires the local data for a step.","_ident":"The local identifier of the data to post.","_partOffset":"The offset of the data to post."}},"attack(bytes32,uint256,bytes32)":{"params":{"_claim":"The `Claim` at the relative attack position.","_disputed":"The `Claim` being attacked.","_parentIndex":"Index of the `Claim` to attack in the `claimData` array. This must match the `_disputed` claim."}},"challengeRootL2Block((bytes32,bytes32,bytes32,bytes32),bytes)":{"params":{"_headerRLP":"The RLP-encoded L2 block header.","_outputRootProof":"The output root proof."}},"claimCredit(address)":{"params":{"_recipient":"The owner and recipient of the credit."}},"constructor":{"params":{"_absolutePrestate":"The absolute prestate of the instruction trace.","_anchorStateRegistry":"The contract that stores the anchor state for each game type.","_challenger":"Address that is allowed to challenge instances of this contract.","_clockExtension":"The clock extension to perform when the remaining duration is less than the extension.","_gameType":"The type ID of the game.","_l2ChainId":"Chain ID of the L2 network this contract argues about.","_maxClockDuration":"The maximum amount of time that may accumulate on a team's chess clock.","_maxGameDepth":"The maximum depth of bisection.","_proposer":"Address that is allowed to create instances of this contract.","_splitDepth":"The final depth of the output bisection portion of the game.","_vm":"An onchain VM that performs single instruction steps on an FPP trace.","_weth":"WETH contract for holding ETH."}},"defend(bytes32,uint256,bytes32)":{"params":{"_claim":"The `Claim` at the relative defense position.","_parentIndex":"Index of the claim to defend in the `claimData` array. This must match the `_disputed` claim."}},"extraData()":{"details":"`clones-with-immutable-args` argument #4","returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator."}},"gameCreator()":{"details":"`clones-with-immutable-args` argument #1","returns":{"creator_":"The creator of the dispute game."}},"gameData()":{"returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator.","gameType_":"The type of proof system being used.","rootClaim_":"The root claim of the DisputeGame."}},"gameType()":{"details":"The reference impl should be entirely different depending on the type (fault, validity)      i.e. The game type should indicate the security model.","returns":{"gameType_":"The type of proof system being used."}},"getChallengerDuration(uint256)":{"params":{"_claimIndex":"The index of the subgame root claim."},"returns":{"duration_":"The time elapsed on the potential challenger to `_claimIndex`'s chess clock."}},"getNumToResolve(uint256)":{"params":{"_claimIndex":"The subgame root claim's index within `claimData`."},"returns":{"numRemainingChildren_":"The number of children that still need to be checked to resolve the subgame."}},"getRequiredBond(uint128)":{"params":{"_position":"The position of the bonded interaction."},"returns":{"requiredBond_":"The required ETH bond for the given move, in wei."}},"initialize()":{"details":"This function may only be called once."},"l1Head()":{"details":"`clones-with-immutable-args` argument #3","returns":{"l1Head_":"The parent hash of the L1 block when the dispute game was created."}},"move(bytes32,uint256,bytes32,bool)":{"params":{"_challengeIndex":"The index of the claim being moved against. This must match the `_disputed` claim.","_claim":"The claim at the next logical position in the game.","_isAttack":"Whether or not the move is an attack or defense."}},"resolve()":{"details":"May only be called if the `status` is `IN_PROGRESS`.","returns":{"status_":"The status of the game after resolution."}},"resolveClaim(uint256,uint256)":{"details":"This function must be called bottom-up in the DAG      A subgame is a tree of claims that has a maximum depth of 1.      A subgame root claims is valid if, and only if, all of its child claims are invalid.      At the deepest level in the DAG, a claim is invalid if there's a successful step against it.","params":{"_claimIndex":"The index of the subgame root claim to resolve.","_numToResolve":"The number of subgames to resolve in this call. If the input is `0`, and this is the first                      page, this function will attempt to check all of the subgame's children at once."}},"rootClaim()":{"details":"`clones-with-immutable-args` argument #2","returns":{"rootClaim_":"The root claim of the DisputeGame."}},"step(uint256,bool,bytes,bytes)":{"details":"This function should point to a fault proof processor in order to execute      a step in the fault proof program on-chain. The interface of the fault proof      processor contract should adhere to the `IBigStepper` interface.","params":{"_claimIndex":"The index of the challenged claim within `claimData`.","_isAttack":"Whether or not the step is an attack or a defense.","_proof":"Proof to access memory nodes in the VM's merkle state tree.","_stateData":"The stateData of the step is the preimage of the claim at the given        prestate, which is at `_stateIndex` if the move is an attack and `_claimIndex` if        the move is a defense. If the step is an attack on the first instruction, it is        the absolute prestate of the fault proof VM."}}},"version":1},"userdoc":{"kind":"user","methods":{"absolutePrestate()":{"notice":"Returns the absolute prestate of the instruction trace."},"addLocalData(uint256,uint256,uint256)":{"notice":"Posts the requested local data to the VM's `PreimageOralce`."},"anchorStateRegistry()":{"notice":"Returns the anchor state registry contract."},"attack(bytes32,uint256,bytes32)":{"notice":"Attack a disagreed upon `Claim`."},"challengeRootL2Block((bytes32,bytes32,bytes32,bytes32),bytes)":{"notice":"Challenges the root L2 block number by providing the preimage of the output root and the L2 block header         and showing that the committed L2 block number is incorrect relative to the claimed L2 block number."},"challenger()":{"notice":"Returns the challenger address."},"claimCredit(address)":{"notice":"Claim the credit belonging to the recipient address."},"claimData(uint256)":{"notice":"An append-only array of all claims made during the dispute game."},"claimDataLen()":{"notice":"Returns the length of the `claimData` array."},"claims(bytes32)":{"notice":"A mapping to allow for constant-time lookups of existing claims."},"clockExtension()":{"notice":"Returns the clock extension constant."},"createdAt()":{"notice":"The starting timestamp of the game"},"credit(address)":{"notice":"Credited balances for winning participants."},"defend(bytes32,uint256,bytes32)":{"notice":"Defend an agreed upon `Claim`._disputed The `Claim` being defended."},"extraData()":{"notice":"Getter for the extra data."},"gameCreator()":{"notice":"Getter for the creator of the dispute game."},"gameData()":{"notice":"A compliant implementation of this interface should return the components of the         game UUID's preimage provided in the cwia payload. The preimage of the UUID is         constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes         concatenation."},"gameType()":{"notice":"Getter for the game type."},"getChallengerDuration(uint256)":{"notice":"Returns the amount of time elapsed on the potential challenger to `_claimIndex`'s chess clock. Maxes         out at `MAX_CLOCK_DURATION`."},"getNumToResolve(uint256)":{"notice":"Returns the number of children that still need to be resolved in order to fully resolve a subgame rooted         at `_claimIndex`."},"getRequiredBond(uint128)":{"notice":"Returns the required bond for a given move kind."},"initialize()":{"notice":"Initializes the contract."},"l1Head()":{"notice":"Getter for the parent hash of the L1 block when the dispute game was created."},"l2BlockNumber()":{"notice":"The l2BlockNumber of the disputed output root in the `L2OutputOracle`."},"l2BlockNumberChallenged()":{"notice":"Flag for whether or not the L2 block number claim has been invalidated via `challengeRootL2Block`."},"l2BlockNumberChallenger()":{"notice":"The challenger of the L2 block number claim. Should always be `address(0)` if `l2BlockNumberChallenged`         is `false`. Should be the address of the challenger if `l2BlockNumberChallenged` is `true`."},"l2ChainId()":{"notice":"Returns the chain ID of the L2 network this contract argues about."},"maxClockDuration()":{"notice":"Returns the max clock duration."},"maxGameDepth()":{"notice":"Returns the max game depth."},"move(bytes32,uint256,bytes32,bool)":{"notice":"Generic move function, used for both `attack` and `defend` moves._disputed The disputed `Claim`."},"proposer()":{"notice":"Returns the proposer address."},"resolutionCheckpoints(uint256)":{"notice":"A mapping of claim indices to resolution checkpoints."},"resolve()":{"notice":"If all necessary information has been gathered, this function should mark the game         status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of         the resolved game. It is at this stage that the bonds should be awarded to the         necessary parties."},"resolveClaim(uint256,uint256)":{"notice":"Resolves the subgame rooted at the given claim index. `_numToResolve` specifies how many children of         the subgame will be checked in this call. If `_numToResolve` is less than the number of children, an         internal cursor will be updated and this function may be called again to complete resolution of the         subgame."},"resolvedAt()":{"notice":"The timestamp of the game's global resolution."},"resolvedSubgames(uint256)":{"notice":"A mapping of resolved subgames rooted at a claim index."},"rootClaim()":{"notice":"Getter for the root claim."},"splitDepth()":{"notice":"Returns the split depth."},"startingBlockNumber()":{"notice":"Only the starting block number of the game."},"startingOutputRoot()":{"notice":"The latest finalized output root, serving as the anchor for output bisection."},"startingRootHash()":{"notice":"Only the starting output root of the game."},"status()":{"notice":"Returns the current status of the game."},"step(uint256,bool,bytes,bytes)":{"notice":"Perform an instruction step via an on-chain fault proof processor."},"subgames(uint256,uint256)":{"notice":"A mapping of subgames rooted at a claim index to other claim indices in the subgame."},"version()":{"notice":"Semantic version."},"vm()":{"notice":"Returns the address of the VM."},"weth()":{"notice":"Returns the WETH contract for holding ETH."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/dispute/PermissionedDisputeGame.sol":"PermissionedDisputeGame"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/solady/src/utils/Clone.sol":{"keccak256":"0xb408dc90294bacd394e59c83619e7dc76f45c83ad6f8e923eb07d3a5bab89f22","urls":["bzz-raw://c3abeb55ad062c4b29b5b5edab6167de36615c51621ef71ef3ddfd9f6735a93b","dweb:/ipfs/Qmboh4zX6ZgFVhetUhZGJ14kKXiaGeB9bW3Vseg2MLMGHW"],"license":"MIT"},"lib/solady/src/utils/FixedPointMathLib.sol":{"keccak256":"0x1fbad6f61bd3e5875e6b0060b67626cb1ccb9542c0da368a44eb3870c9a9e160","urls":["bzz-raw://5189fcd5ecff0f449475cf3183e9d6b509cd1221555aba6cd76c70b097cc8260","dweb:/ipfs/Qmbt34Kf5h2DeYzmqXtg3jprYxDCFdENtf41NgCdcARA7u"],"license":"MIT"},"src/cannon/interfaces/IPreimageOracle.sol":{"keccak256":"0x53e6cada4297de6604a9f4b8f47b6d38a3506b8b1ae1a0f4bb1abb5276396bca","urls":["bzz-raw://39a5645dde6d80af9fb08044b8c8555b5d09a66314de00d5f92dc33dfb8c10a5","dweb:/ipfs/QmQDJY2AudK3CFR2J8mC4uVtiiPnzCVHAyNwAxPmyNd6n3"],"license":"MIT"},"src/dispute/FaultDisputeGame.sol":{"keccak256":"0x347c38c8514725a9e094d82de89a11cd3fe21fd765e106800bdbe497c7f75d5d","urls":["bzz-raw://39ea59df1ff2d22275b0535203196d11c1f6eda82de466c813a69659c384ff64","dweb:/ipfs/QmaX35sCPRQJ8pQMDu2Rzaw51AeB3XicJCkfwyFqTMtNMm"],"license":"MIT"},"src/dispute/PermissionedDisputeGame.sol":{"keccak256":"0x25816eacfe346264a7636be1c798265918c7639accbcd15ce511390a63237be9","urls":["bzz-raw://bcc8b98dd6abb3574dcd8b1558b880fd1402c4cf51c68fac9cb541345f703afa","dweb:/ipfs/QmTUfrgFA3vNpCfXbyTPswLhw6h2TWuVEqW7QyxqYmZAyF"],"license":"MIT"},"src/dispute/interfaces/IAnchorStateRegistry.sol":{"keccak256":"0x54756eef4ee83e2abf35752d2b68b775c5a6d09c425489def39baca81af92739","urls":["bzz-raw://b38629f62e2990b8c7b1246d1fd6c87c3bd1aaebf496098cb268a5d0b4037269","dweb:/ipfs/QmbUEix26siwjHaTfUr1PfBoFyZuwYxDTc4udbUGxmAhYs"],"license":"MIT"},"src/dispute/interfaces/IBigStepper.sol":{"keccak256":"0xc92ee3069677b903826c83d5b4e46e3be462f9ccf1d95e72a12b1052e3451f0a","urls":["bzz-raw://f93692bd3c8d9533ab8024ce2df6d880328826d1a92fdb9cf45301e2d0c65884","dweb:/ipfs/QmUcmbjTw9gnCUNasgmQjVbSgcCPKZ1FQyA31dH4k5Nc75"],"license":"MIT"},"src/dispute/interfaces/IDelayedWETH.sol":{"keccak256":"0x0bb035e9bbb411696841ea292eeed6d4463c3c3eee7d6c5d8e38a101e8a4ff04","urls":["bzz-raw://0477cf2c137392d35081f23bfd7f3565881767dcb1489a62e7e80b3c178cfce8","dweb:/ipfs/QmTjALjrHg5rvhjfCKPmXLTgkMNneECWaqoarunSoVS37G"],"license":"MIT"},"src/dispute/interfaces/IDisputeGame.sol":{"keccak256":"0xa4d3617892dfee02890ea135e778ed0207aa8545c97cb2a421bae7c1a659baa0","urls":["bzz-raw://0e31653e3463dbc3f3b572ca4a1198d9aadc7d8606a2b690a58e2c082a0d0090","dweb:/ipfs/QmdbxJK4T5Hu652cSkxpAjYPxrK1i5ZM62oyopzmAzRn6M"],"license":"MIT"},"src/dispute/interfaces/IDisputeGameFactory.sol":{"keccak256":"0xcab52326762c570297a6f62addde4e4f9296bba85f2f1470f52a3c64f57c5b41","urls":["bzz-raw://40decdf2e72938f55434d300ae5d2a607f1186c8595ff1cc3ce6c3f6d312b701","dweb:/ipfs/QmaQEHn1FPjvinQTNth9vEx84iDEwtg2cVk9bLpnwLyzot"],"license":"MIT"},"src/dispute/interfaces/IFaultDisputeGame.sol":{"keccak256":"0x9655abdda7d33496f012e5a8bf492c7733573024cc7779dc79fb4553f11e9f0a","urls":["bzz-raw://4f8f0acce831c36385a4b06a5142ddfc2dbe2e7c403193df2585293ef2821c03","dweb:/ipfs/QmR4XJ8rG1aiR7NgyTNbQ4swe8CFWkytudbWiKKMaqiCMH"],"license":"MIT"},"src/dispute/interfaces/IInitializable.sol":{"keccak256":"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc","urls":["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5","dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"],"license":"MIT"},"src/dispute/interfaces/IWETH.sol":{"keccak256":"0x3858f6c0ce3ec7978b1ea1772484c25aec7c8c480ceaf18239f726fdd06fdd1f","urls":["bzz-raw://b72cf3bc31324409480e9ae6eb3e2654da8dff3cbf9f2136b19fe714293b3766","dweb:/ipfs/QmTW3JiFUo8pYhDbthPH8ZSp5f1nmdga4CSzo4YdEzppnM"],"license":"MIT"},"src/dispute/lib/Errors.sol":{"keccak256":"0x59f7adeec32d10de65aa9417424dfc702c3f483a3f34b368924b141bbd33c2f4","urls":["bzz-raw://9c47a4eacbbe2a2eaa313c0fe3081af0179d8ae3b2c0859d13a756dd30f930bc","dweb:/ipfs/QmUQuQCdhB1WeRhcHhkVB3fUbPcWxK2V3jtUxSpfNKmgqs"],"license":"MIT"},"src/dispute/lib/LibPosition.sol":{"keccak256":"0x7c5f19f8f54f06de2ce1c6cdcc5c7af65ac405130a4066cdaf146ca315818241","urls":["bzz-raw://06905e5ede94784e32748ad60557cb0b0829089d65430518e7042b80d2f64e2d","dweb:/ipfs/QmeGKMmnFnow2VrRvTSPavCrToqQ3qDpEaR1tVoK6Hzg8K"],"license":"MIT"},"src/dispute/lib/LibUDT.sol":{"keccak256":"0x02eef648a47889c21c8261101c99a491e8497f9f7d088b66dffa4ded6afd7855","urls":["bzz-raw://88001eed40a7dbbc5193d9671e1c05273dce1ab2a95bb866543421d2863ed04e","dweb:/ipfs/QmSNU8mFUFxhVdLBToL8r3v7tpugyvPDbDU4vkc3Xd4omX"],"license":"MIT"},"src/dispute/lib/Types.sol":{"keccak256":"0x227948243b4be041de133e1adc4b1dd49e9c1f519e4b5ab7f18c5bc9740539b9","urls":["bzz-raw://ae2584956303586801a4c721ad39db90b8929101594f5bed10d77b28e66b3c11","dweb:/ipfs/QmdoKT3UiTfBY3nBLjKRGJkngS7vq6exVQbuPqo5GwDCM1"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x5586d9715d8fbdd48245220f13a96573555fd847a333869e862ae186802e0311","urls":["bzz-raw://3f34dbd5a0a8918120e226f549a8337bd6fc7176653159a85929ce6fe3d66e11","dweb:/ipfs/QmQKnhRPMnhKBRLmV2C1BqAsPpQg8xVFXi7ZLuHU9XQ1BE"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPErrors.sol":{"keccak256":"0x2b7fa174e6c62962f7c3ce1960298d325ed0e5ff4ee3fd426848e88b4500eb26","urls":["bzz-raw://f5528dd355691e6e2dffa3ecf11388f51e3bd29f27693c5dcd11be182559ba47","dweb:/ipfs/QmTqZ5ZzBPwLYg3JNZttHZYaXv5zyzQfakSz4B8sYkAz42"],"license":"MIT"},"src/libraries/rlp/RLPReader.sol":{"keccak256":"0x27cbbc74d603b301e0e4bc4d33bbbeb88e369f1a91191a33d89ea52360e003db","urls":["bzz-raw://ba58dfd78089a51f06638fa6c0d2287c6254907ad89c4ad58b6fbb331d5d5a96","dweb:/ipfs/QmUjC5Pm2MxPgYm9DfW1MasHj5jz7xXvej88778QuUoNgp"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":106627,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"createdAt","offset":0,"slot":"0","type":"t_userDefinedValueType(Timestamp)110558"},{"astId":106631,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"resolvedAt","offset":8,"slot":"0","type":"t_userDefinedValueType(Timestamp)110558"},{"astId":106635,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"status","offset":16,"slot":"0","type":"t_enum(GameStatus)110608"},{"astId":106638,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"initialized","offset":17,"slot":"0","type":"t_bool"},{"astId":106641,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"l2BlockNumberChallenged","offset":18,"slot":"0","type":"t_bool"},{"astId":106644,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"l2BlockNumberChallenger","offset":0,"slot":"1","type":"t_address"},{"astId":106649,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"claimData","offset":0,"slot":"2","type":"t_array(t_struct(ClaimData)109787_storage)dyn_storage"},{"astId":106654,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"credit","offset":0,"slot":"3","type":"t_mapping(t_address,t_uint256)"},{"astId":106660,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"claims","offset":0,"slot":"4","type":"t_mapping(t_userDefinedValueType(Hash)110543,t_bool)"},{"astId":106666,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"subgames","offset":0,"slot":"5","type":"t_mapping(t_uint256,t_array(t_uint256)dyn_storage)"},{"astId":106671,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"resolvedSubgames","offset":0,"slot":"6","type":"t_mapping(t_uint256,t_bool)"},{"astId":106677,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"resolutionCheckpoints","offset":0,"slot":"7","type":"t_mapping(t_uint256,t_struct(ResolutionCheckpoint)109797_storage)"},{"astId":106681,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"startingOutputRoot","offset":0,"slot":"8","type":"t_struct(OutputRoot)110614_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_struct(ClaimData)109787_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct IFaultDisputeGame.ClaimData[]","numberOfBytes":"32","base":"t_struct(ClaimData)109787_storage"},"t_array(t_uint256)dyn_storage":{"encoding":"dynamic_array","label":"uint256[]","numberOfBytes":"32","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_enum(GameStatus)110608":{"encoding":"inplace","label":"enum GameStatus","numberOfBytes":"1"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_array(t_uint256)dyn_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => uint256[])","numberOfBytes":"32","value":"t_array(t_uint256)dyn_storage"},"t_mapping(t_uint256,t_bool)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_uint256,t_struct(ResolutionCheckpoint)109797_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct IFaultDisputeGame.ResolutionCheckpoint)","numberOfBytes":"32","value":"t_struct(ResolutionCheckpoint)109797_storage"},"t_mapping(t_userDefinedValueType(Hash)110543,t_bool)":{"encoding":"mapping","key":"t_userDefinedValueType(Hash)110543","label":"mapping(Hash => bool)","numberOfBytes":"32","value":"t_bool"},"t_struct(ClaimData)109787_storage":{"encoding":"inplace","label":"struct IFaultDisputeGame.ClaimData","numberOfBytes":"160","members":[{"astId":109771,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"parentIndex","offset":0,"slot":"0","type":"t_uint32"},{"astId":109773,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"counteredBy","offset":4,"slot":"0","type":"t_address"},{"astId":109775,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"claimant","offset":0,"slot":"1","type":"t_address"},{"astId":109777,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"bond","offset":0,"slot":"2","type":"t_uint128"},{"astId":109780,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"claim","offset":0,"slot":"3","type":"t_userDefinedValueType(Claim)110496"},{"astId":109783,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"position","offset":0,"slot":"4","type":"t_userDefinedValueType(Position)110154"},{"astId":109786,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"clock","offset":16,"slot":"4","type":"t_userDefinedValueType(Clock)110404"}]},"t_struct(OutputRoot)110614_storage":{"encoding":"inplace","label":"struct OutputRoot","numberOfBytes":"64","members":[{"astId":110611,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"root","offset":0,"slot":"0","type":"t_userDefinedValueType(Hash)110543"},{"astId":110613,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"l2BlockNumber","offset":0,"slot":"1","type":"t_uint256"}]},"t_struct(ResolutionCheckpoint)109797_storage":{"encoding":"inplace","label":"struct IFaultDisputeGame.ResolutionCheckpoint","numberOfBytes":"64","members":[{"astId":109789,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"initialCheckpointComplete","offset":0,"slot":"0","type":"t_bool"},{"astId":109791,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"subgameIndex","offset":1,"slot":"0","type":"t_uint32"},{"astId":109794,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"leftmostPosition","offset":5,"slot":"0","type":"t_userDefinedValueType(Position)110154"},{"astId":109796,"contract":"src/dispute/PermissionedDisputeGame.sol:PermissionedDisputeGame","label":"counteredBy","offset":0,"slot":"1","type":"t_address"}]},"t_uint128":{"encoding":"inplace","label":"uint128","numberOfBytes":"16"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"},"t_userDefinedValueType(Claim)110496":{"encoding":"inplace","label":"Claim","numberOfBytes":"32"},"t_userDefinedValueType(Clock)110404":{"encoding":"inplace","label":"Clock","numberOfBytes":"16"},"t_userDefinedValueType(Hash)110543":{"encoding":"inplace","label":"Hash","numberOfBytes":"32"},"t_userDefinedValueType(Position)110154":{"encoding":"inplace","label":"Position","numberOfBytes":"16"},"t_userDefinedValueType(Timestamp)110558":{"encoding":"inplace","label":"Timestamp","numberOfBytes":"8"}}},"userdoc":{"version":1,"kind":"user","methods":{"absolutePrestate()":{"notice":"Returns the absolute prestate of the instruction trace."},"addLocalData(uint256,uint256,uint256)":{"notice":"Posts the requested local data to the VM's `PreimageOralce`."},"anchorStateRegistry()":{"notice":"Returns the anchor state registry contract."},"attack(bytes32,uint256,bytes32)":{"notice":"Attack a disagreed upon `Claim`."},"challengeRootL2Block((bytes32,bytes32,bytes32,bytes32),bytes)":{"notice":"Challenges the root L2 block number by providing the preimage of the output root and the L2 block header         and showing that the committed L2 block number is incorrect relative to the claimed L2 block number."},"challenger()":{"notice":"Returns the challenger address."},"claimCredit(address)":{"notice":"Claim the credit belonging to the recipient address."},"claimData(uint256)":{"notice":"An append-only array of all claims made during the dispute game."},"claimDataLen()":{"notice":"Returns the length of the `claimData` array."},"claims(bytes32)":{"notice":"A mapping to allow for constant-time lookups of existing claims."},"clockExtension()":{"notice":"Returns the clock extension constant."},"createdAt()":{"notice":"The starting timestamp of the game"},"credit(address)":{"notice":"Credited balances for winning participants."},"defend(bytes32,uint256,bytes32)":{"notice":"Defend an agreed upon `Claim`._disputed The `Claim` being defended."},"extraData()":{"notice":"Getter for the extra data."},"gameCreator()":{"notice":"Getter for the creator of the dispute game."},"gameData()":{"notice":"A compliant implementation of this interface should return the components of the         game UUID's preimage provided in the cwia payload. The preimage of the UUID is         constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes         concatenation."},"gameType()":{"notice":"Getter for the game type."},"getChallengerDuration(uint256)":{"notice":"Returns the amount of time elapsed on the potential challenger to `_claimIndex`'s chess clock. Maxes         out at `MAX_CLOCK_DURATION`."},"getNumToResolve(uint256)":{"notice":"Returns the number of children that still need to be resolved in order to fully resolve a subgame rooted         at `_claimIndex`."},"getRequiredBond(uint128)":{"notice":"Returns the required bond for a given move kind."},"initialize()":{"notice":"Initializes the contract."},"l1Head()":{"notice":"Getter for the parent hash of the L1 block when the dispute game was created."},"l2BlockNumber()":{"notice":"The l2BlockNumber of the disputed output root in the `L2OutputOracle`."},"l2BlockNumberChallenged()":{"notice":"Flag for whether or not the L2 block number claim has been invalidated via `challengeRootL2Block`."},"l2BlockNumberChallenger()":{"notice":"The challenger of the L2 block number claim. Should always be `address(0)` if `l2BlockNumberChallenged`         is `false`. Should be the address of the challenger if `l2BlockNumberChallenged` is `true`."},"l2ChainId()":{"notice":"Returns the chain ID of the L2 network this contract argues about."},"maxClockDuration()":{"notice":"Returns the max clock duration."},"maxGameDepth()":{"notice":"Returns the max game depth."},"move(bytes32,uint256,bytes32,bool)":{"notice":"Generic move function, used for both `attack` and `defend` moves._disputed The disputed `Claim`."},"proposer()":{"notice":"Returns the proposer address."},"resolutionCheckpoints(uint256)":{"notice":"A mapping of claim indices to resolution checkpoints."},"resolve()":{"notice":"If all necessary information has been gathered, this function should mark the game         status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of         the resolved game. It is at this stage that the bonds should be awarded to the         necessary parties."},"resolveClaim(uint256,uint256)":{"notice":"Resolves the subgame rooted at the given claim index. `_numToResolve` specifies how many children of         the subgame will be checked in this call. If `_numToResolve` is less than the number of children, an         internal cursor will be updated and this function may be called again to complete resolution of the         subgame."},"resolvedAt()":{"notice":"The timestamp of the game's global resolution."},"resolvedSubgames(uint256)":{"notice":"A mapping of resolved subgames rooted at a claim index."},"rootClaim()":{"notice":"Getter for the root claim."},"splitDepth()":{"notice":"Returns the split depth."},"startingBlockNumber()":{"notice":"Only the starting block number of the game."},"startingOutputRoot()":{"notice":"The latest finalized output root, serving as the anchor for output bisection."},"startingRootHash()":{"notice":"Only the starting output root of the game."},"status()":{"notice":"Returns the current status of the game."},"step(uint256,bool,bytes,bytes)":{"notice":"Perform an instruction step via an on-chain fault proof processor."},"subgames(uint256,uint256)":{"notice":"A mapping of subgames rooted at a claim index to other claim indices in the subgame."},"version()":{"notice":"Semantic version."},"vm()":{"notice":"Returns the address of the VM."},"weth()":{"notice":"Returns the WETH contract for holding ETH."}},"events":{"Move(uint256,bytes32,address)":{"notice":"Emitted when a new claim is added to the DAG by `claimant`"},"Resolved(uint8)":{"notice":"Emitted when the game is resolved."}},"errors":{"AlreadyInitialized()":[{"notice":"Thrown when a dispute game has already been initialized."}],"AnchorRootNotFound()":[{"notice":"Thrown when an anchor root is not found for a given game type."}],"BadAuth()":[{"notice":"Thrown when an unauthorized address attempts to interact with the game."}],"BlockNumberMatches()":[{"notice":"Thrown when there is a match between the block number in the output root proof and the block number         claimed in the dispute game."}],"BondTransferFailed()":[{"notice":"Thrown when the transfer of credit to a recipient account reverts."}],"CannotDefendRootClaim()":[{"notice":"Thrown when a defense against the root claim is attempted."}],"ClaimAboveSplit()":[{"notice":"Thrown when a parent output root is attempted to be found on a claim that is in         the output root portion of the tree."}],"ClaimAlreadyExists()":[{"notice":"Thrown when a claim is attempting to be made that already exists."}],"ClaimAlreadyResolved()":[{"notice":"Thrown when resolving a claim that has already been resolved."}],"ClockNotExpired()":[{"notice":"Thrown when the game is attempted to be resolved too early."}],"ClockTimeExceeded()":[{"notice":"Thrown when a move is attempted to be made after the clock has timed out."}],"ContentLengthMismatch()":[{"notice":"The length of the content must be greater than the RLP item length"}],"DuplicateStep()":[{"notice":"Thrown when trying to step against a claim for a second time, after it has already been countered with         an instruction step."}],"EmptyItem()":[{"notice":"The length of an RLP item must be greater than zero to be decodable"}],"GameDepthExceeded()":[{"notice":"Thrown when a move is attempted to be made at or greater than the max depth of the game."}],"GameNotInProgress()":[{"notice":"Thrown when an action that requires the game to be `IN_PROGRESS` is invoked when         the game is not in progress."}],"IncorrectBondAmount()":[{"notice":"Thrown when a supplied bond is not equal to the required bond amount to cover the cost of the interaction."}],"InvalidChallengePeriod()":[{"notice":"Thrown on deployment if the PreimageOracle challenge period is too high."}],"InvalidClockExtension()":[{"notice":"Thrown on deployment if the max clock duration is less than or equal to the clock extension."}],"InvalidDataRemainder()":[{"notice":"The RLP item has an invalid data remainder"}],"InvalidDisputedClaimIndex()":[{"notice":"Thrown when a disputed claim does not match its index in the game."}],"InvalidHeader()":[{"notice":"Invalid RLP header for RLP item"}],"InvalidHeaderRLP()":[{"notice":"Thrown when header RLP is invalid with respect to the block hash in an output root proof."}],"InvalidLocalIdent()":[{"notice":"Thrown when an invalid local identifier is passed to the `addLocalData` function."}],"InvalidOutputRootProof()":[{"notice":"Thrown when an output root proof is invalid."}],"InvalidParent()":[{"notice":"Thrown when a step is attempted above the maximum game depth."}],"InvalidPrestate()":[{"notice":"Thrown when an invalid prestate is supplied to `step`."}],"InvalidSplitDepth()":[{"notice":"Thrown on deployment if the split depth is greater than or equal to the max         depth of the game."}],"L2BlockNumberChallenged()":[{"notice":"Thrown when the L2 block number claim has already been challenged."}],"MaxDepthTooLarge()":[{"notice":"Thrown on deployment if the max depth is greater than `LibPosition.`"}],"NoCreditToClaim()":[{"notice":"Thrown when a credit claim is attempted for a value of 0."}],"OutOfOrderResolution()":[{"notice":"Thrown when resolving claims out of order."}],"UnexpectedList()":[{"notice":"Decoded item type for bytes is not a string item"}],"UnexpectedRootClaim(bytes32)":[{"notice":"Thrown when the root claim has an unexpected VM status.         Some games can only start with a root-claim with a specific status."}],"UnexpectedString()":[{"notice":"The decoded item type for list is not a list item"}],"ValidStep()":[{"notice":"Thrown when a step is made that computes the expected post state correctly."}]},"notice":"PermissionedDisputeGame is a contract that inherits from `FaultDisputeGame`, and contains two roles:         - The `challenger` role, which is allowed to challenge a dispute.         - The `proposer` role, which is allowed to create proposals and participate in their game.         This contract exists as a way for networks to support the fault proof iteration of the OptimismPortal         contract without needing to support a fully permissionless system. Permissionless systems can introduce         costs that certain networks may not wish to support. This contract can also be used as a fallback mechanism         in case of a failure in the permissionless fault proof system in the stage one release."},"devdoc":{"version":1,"kind":"dev","methods":{"addLocalData(uint256,uint256,uint256)":{"params":{"_execLeafIdx":"The index of the leaf claim in an execution subgame that requires the local data for a step.","_ident":"The local identifier of the data to post.","_partOffset":"The offset of the data to post."}},"attack(bytes32,uint256,bytes32)":{"params":{"_claim":"The `Claim` at the relative attack position.","_disputed":"The `Claim` being attacked.","_parentIndex":"Index of the `Claim` to attack in the `claimData` array. This must match the `_disputed` claim."}},"challengeRootL2Block((bytes32,bytes32,bytes32,bytes32),bytes)":{"params":{"_headerRLP":"The RLP-encoded L2 block header.","_outputRootProof":"The output root proof."}},"claimCredit(address)":{"params":{"_recipient":"The owner and recipient of the credit."}},"constructor":{"params":{"_absolutePrestate":"The absolute prestate of the instruction trace.","_anchorStateRegistry":"The contract that stores the anchor state for each game type.","_challenger":"Address that is allowed to challenge instances of this contract.","_clockExtension":"The clock extension to perform when the remaining duration is less than the extension.","_gameType":"The type ID of the game.","_l2ChainId":"Chain ID of the L2 network this contract argues about.","_maxClockDuration":"The maximum amount of time that may accumulate on a team's chess clock.","_maxGameDepth":"The maximum depth of bisection.","_proposer":"Address that is allowed to create instances of this contract.","_splitDepth":"The final depth of the output bisection portion of the game.","_vm":"An onchain VM that performs single instruction steps on an FPP trace.","_weth":"WETH contract for holding ETH."}},"defend(bytes32,uint256,bytes32)":{"params":{"_claim":"The `Claim` at the relative defense position.","_parentIndex":"Index of the claim to defend in the `claimData` array. This must match the `_disputed` claim."}},"extraData()":{"details":"`clones-with-immutable-args` argument #4","returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator."}},"gameCreator()":{"details":"`clones-with-immutable-args` argument #1","returns":{"creator_":"The creator of the dispute game."}},"gameData()":{"returns":{"extraData_":"Any extra data supplied to the dispute game contract by the creator.","gameType_":"The type of proof system being used.","rootClaim_":"The root claim of the DisputeGame."}},"gameType()":{"details":"The reference impl should be entirely different depending on the type (fault, validity)      i.e. The game type should indicate the security model.","returns":{"gameType_":"The type of proof system being used."}},"getChallengerDuration(uint256)":{"params":{"_claimIndex":"The index of the subgame root claim."},"returns":{"duration_":"The time elapsed on the potential challenger to `_claimIndex`'s chess clock."}},"getNumToResolve(uint256)":{"params":{"_claimIndex":"The subgame root claim's index within `claimData`."},"returns":{"numRemainingChildren_":"The number of children that still need to be checked to resolve the subgame."}},"getRequiredBond(uint128)":{"params":{"_position":"The position of the bonded interaction."},"returns":{"requiredBond_":"The required ETH bond for the given move, in wei."}},"initialize()":{"details":"This function may only be called once."},"l1Head()":{"details":"`clones-with-immutable-args` argument #3","returns":{"l1Head_":"The parent hash of the L1 block when the dispute game was created."}},"move(bytes32,uint256,bytes32,bool)":{"params":{"_challengeIndex":"The index of the claim being moved against. This must match the `_disputed` claim.","_claim":"The claim at the next logical position in the game.","_isAttack":"Whether or not the move is an attack or defense."}},"resolve()":{"details":"May only be called if the `status` is `IN_PROGRESS`.","returns":{"status_":"The status of the game after resolution."}},"resolveClaim(uint256,uint256)":{"details":"This function must be called bottom-up in the DAG      A subgame is a tree of claims that has a maximum depth of 1.      A subgame root claims is valid if, and only if, all of its child claims are invalid.      At the deepest level in the DAG, a claim is invalid if there's a successful step against it.","params":{"_claimIndex":"The index of the subgame root claim to resolve.","_numToResolve":"The number of subgames to resolve in this call. If the input is `0`, and this is the first                      page, this function will attempt to check all of the subgame's children at once."}},"rootClaim()":{"details":"`clones-with-immutable-args` argument #2","returns":{"rootClaim_":"The root claim of the DisputeGame."}},"step(uint256,bool,bytes,bytes)":{"details":"This function should point to a fault proof processor in order to execute      a step in the fault proof program on-chain. The interface of the fault proof      processor contract should adhere to the `IBigStepper` interface.","params":{"_claimIndex":"The index of the challenged claim within `claimData`.","_isAttack":"Whether or not the step is an attack or a defense.","_proof":"Proof to access memory nodes in the VM's merkle state tree.","_stateData":"The stateData of the step is the preimage of the claim at the given        prestate, which is at `_stateIndex` if the move is an attack and `_claimIndex` if        the move is a defense. If the step is an attack on the first instruction, it is        the absolute prestate of the fault proof VM."}}},"errors":{"UnexpectedRootClaim(bytes32)":[{"params":{"rootClaim":"is the claim that was unexpected."}}]},"title":"PermissionedDisputeGame"},"ast":{"absolutePath":"src/dispute/PermissionedDisputeGame.sol","id":109372,"exportedSymbols":{"AlreadyInitialized":[110050],"AnchorRootNotFound":[110125],"BadAuth":[110140],"BadExtraData":[110062],"BlockNumberMatches":[110134],"BondTransferFailed":[110059],"CannotDefendRootClaim":[110065],"Claim":[110496],"ClaimAboveSplit":[110107],"ClaimAlreadyExists":[110068],"ClaimAlreadyResolved":[110104],"Clock":[110404],"ClockNotExpired":[110080],"ClockTimeExceeded":[110077],"DuplicateStep":[110122],"Duration":[110528],"FaultDisputeGame":[109178],"GameAlreadyExists":[110041],"GameDepthExceeded":[110083],"GameId":[110458],"GameNotInProgress":[110074],"GameStatus":[110608],"GameType":[110588],"GameTypes":[110656],"Hash":[110543],"IAnchorStateRegistry":[109410],"IBigStepper":[109435],"IDelayedWETH":[109503],"IFaultDisputeGame":[109898],"IInitializable":[109906],"IncorrectBondAmount":[110053],"InvalidChallengePeriod":[110116],"InvalidClockExtension":[110113],"InvalidDisputedClaimIndex":[110071],"InvalidGameStatus":[110146],"InvalidHeaderRLP":[110131],"InvalidLocalIdent":[110098],"InvalidOutputRootProof":[110128],"InvalidParent":[110086],"InvalidPrestate":[110089],"InvalidSplitDepth":[110110],"L1HeadTooOld":[110095],"L2BlockNumberChallenged":[110137],"LibClaim":[110526],"LibClock":[110456],"LibDuration":[110541],"LibGameId":[110494],"LibGameType":[110601],"LibHash":[110556],"LibPosition":[110367],"LibTimestamp":[110571],"LibVMStatus":[110586],"LocalPreimageKey":[110712],"MaxDepthTooLarge":[110119],"NoCreditToClaim":[110056],"NoImplementation":[110035],"OutOfOrderResolution":[110101],"OutputRoot":[110614],"PermissionedDisputeGame":[109371],"Position":[110154],"Timestamp":[110558],"UnexpectedRootClaim":[110047],"UnregisteredGame":[110143],"VMStatus":[110573],"VMStatuses":[110690],"ValidStep":[110092]},"nodeType":"SourceUnit","src":"32:5289:187","nodes":[{"id":109180,"nodeType":"PragmaDirective","src":"32:23:187","nodes":[],"literals":["solidity","0.8",".15"]},{"id":109182,"nodeType":"ImportDirective","src":"57:71:187","nodes":[],"absolutePath":"src/dispute/interfaces/IDelayedWETH.sol","file":"src/dispute/interfaces/IDelayedWETH.sol","nameLocation":"-1:-1:-1","scope":109372,"sourceUnit":109504,"symbolAliases":[{"foreign":{"id":109181,"name":"IDelayedWETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109503,"src":"66:12:187","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":109184,"nodeType":"ImportDirective","src":"129:87:187","nodes":[],"absolutePath":"src/dispute/interfaces/IAnchorStateRegistry.sol","file":"src/dispute/interfaces/IAnchorStateRegistry.sol","nameLocation":"-1:-1:-1","scope":109372,"sourceUnit":109411,"symbolAliases":[{"foreign":{"id":109183,"name":"IAnchorStateRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109410,"src":"138:20:187","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":109189,"nodeType":"ImportDirective","src":"217:116:187","nodes":[],"absolutePath":"src/dispute/FaultDisputeGame.sol","file":"src/dispute/FaultDisputeGame.sol","nameLocation":"-1:-1:-1","scope":109372,"sourceUnit":109179,"symbolAliases":[{"foreign":{"id":109185,"name":"FaultDisputeGame","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109178,"src":"226:16:187","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":109186,"name":"IFaultDisputeGame","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109898,"src":"244:17:187","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":109187,"name":"IBigStepper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109435,"src":"263:11:187","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":109188,"name":"IInitializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109906,"src":"276:14:187","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":109190,"nodeType":"ImportDirective","src":"334:35:187","nodes":[],"absolutePath":"src/dispute/lib/Types.sol","file":"src/dispute/lib/Types.sol","nameLocation":"-1:-1:-1","scope":109372,"sourceUnit":110713,"symbolAliases":[],"unitAlias":""},{"id":109191,"nodeType":"ImportDirective","src":"370:36:187","nodes":[],"absolutePath":"src/dispute/lib/Errors.sol","file":"src/dispute/lib/Errors.sol","nameLocation":"-1:-1:-1","scope":109372,"sourceUnit":110147,"symbolAliases":[],"unitAlias":""},{"id":109371,"nodeType":"ContractDefinition","src":"1187:4133:187","nodes":[{"id":109197,"nodeType":"VariableDeclaration","src":"1348:35:187","nodes":[],"constant":false,"documentation":{"id":109195,"nodeType":"StructuredDocumentation","src":"1246:97:187","text":"@notice The proposer role is allowed to create proposals and participate in the dispute game."},"mutability":"immutable","name":"PROPOSER","nameLocation":"1375:8:187","scope":109371,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109196,"name":"address","nodeType":"ElementaryTypeName","src":"1348:7:187","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":109200,"nodeType":"VariableDeclaration","src":"1473:37:187","nodes":[],"constant":false,"documentation":{"id":109198,"nodeType":"StructuredDocumentation","src":"1390:78:187","text":"@notice The challenger role is allowed to participate in the dispute game."},"mutability":"immutable","name":"CHALLENGER","nameLocation":"1500:10:187","scope":109371,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109199,"name":"address","nodeType":"ElementaryTypeName","src":"1473:7:187","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":109221,"nodeType":"ModifierDefinition","src":"1602:153:187","nodes":[],"body":{"id":109220,"nodeType":"Block","src":"1628:127:187","nodes":[],"statements":[{"condition":{"id":109213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1642:53:187","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":109211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":109206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":109203,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1644:3:187","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":109204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1644:10:187","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":109205,"name":"PROPOSER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109197,"src":"1658:8:187","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1644:22:187","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":109210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":109207,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1670:3:187","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":109208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1670:10:187","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":109209,"name":"CHALLENGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109200,"src":"1684:10:187","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1670:24:187","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1644:50:187","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":109212,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1643:52:187","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":109218,"nodeType":"IfStatement","src":"1638:100:187","trueBody":{"id":109217,"nodeType":"Block","src":"1697:41:187","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":109214,"name":"BadAuth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110140,"src":"1718:7:187","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":109215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1718:9:187","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109216,"nodeType":"RevertStatement","src":"1711:16:187"}]}},{"id":109219,"nodeType":"PlaceholderStatement","src":"1747:1:187"}]},"documentation":{"id":109201,"nodeType":"StructuredDocumentation","src":"1517:80:187","text":"@notice Modifier that gates access to the `challenger` and `proposer` roles."},"name":"onlyAuthorized","nameLocation":"1611:14:187","parameters":{"id":109202,"nodeType":"ParameterList","parameters":[],"src":"1625:2:187"},"virtual":false,"visibility":"internal"},{"id":109277,"nodeType":"FunctionDefinition","src":"2763:767:187","nodes":[],"body":{"id":109276,"nodeType":"Block","src":"3459:71:187","nodes":[],"statements":[{"expression":{"id":109270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":109268,"name":"PROPOSER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109197,"src":"3469:8:187","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":109269,"name":"_proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109251,"src":"3480:9:187","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3469:20:187","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":109271,"nodeType":"ExpressionStatement","src":"3469:20:187"},{"expression":{"id":109274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":109272,"name":"CHALLENGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109200,"src":"3499:10:187","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":109273,"name":"_challenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109253,"src":"3512:11:187","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3499:24:187","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":109275,"nodeType":"ExpressionStatement","src":"3499:24:187"}]},"documentation":{"id":109222,"nodeType":"StructuredDocumentation","src":"1761:997:187","text":"@param _gameType The type ID of the game.\n @param _absolutePrestate The absolute prestate of the instruction trace.\n @param _maxGameDepth The maximum depth of bisection.\n @param _splitDepth The final depth of the output bisection portion of the game.\n @param _clockExtension The clock extension to perform when the remaining duration is less than the extension.\n @param _maxClockDuration The maximum amount of time that may accumulate on a team's chess clock.\n @param _vm An onchain VM that performs single instruction steps on an FPP trace.\n @param _weth WETH contract for holding ETH.\n @param _anchorStateRegistry The contract that stores the anchor state for each game type.\n @param _l2ChainId Chain ID of the L2 network this contract argues about.\n @param _proposer Address that is allowed to create instances of this contract.\n @param _challenger Address that is allowed to challenge instances of this contract."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":109256,"name":"_gameType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109225,"src":"3198:9:187","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$110588","typeString":"GameType"}},{"id":109257,"name":"_absolutePrestate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109228,"src":"3221:17:187","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$110496","typeString":"Claim"}},{"id":109258,"name":"_maxGameDepth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109230,"src":"3252:13:187","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":109259,"name":"_splitDepth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109232,"src":"3279:11:187","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":109260,"name":"_clockExtension","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109235,"src":"3304:15:187","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$110528","typeString":"Duration"}},{"id":109261,"name":"_maxClockDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109238,"src":"3333:17:187","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$110528","typeString":"Duration"}},{"id":109262,"name":"_vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109241,"src":"3364:3:187","typeDescriptions":{"typeIdentifier":"t_contract$_IBigStepper_$109435","typeString":"contract IBigStepper"}},{"id":109263,"name":"_weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109244,"src":"3381:5:187","typeDescriptions":{"typeIdentifier":"t_contract$_IDelayedWETH_$109503","typeString":"contract IDelayedWETH"}},{"id":109264,"name":"_anchorStateRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109247,"src":"3400:20:187","typeDescriptions":{"typeIdentifier":"t_contract$_IAnchorStateRegistry_$109410","typeString":"contract IAnchorStateRegistry"}},{"id":109265,"name":"_l2ChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109249,"src":"3434:10:187","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":109266,"kind":"baseConstructorSpecifier","modifierName":{"id":109255,"name":"FaultDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":109178,"src":"3168:16:187"},"nodeType":"ModifierInvocation","src":"3168:286:187"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":109254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109225,"mutability":"mutable","name":"_gameType","nameLocation":"2793:9:187","nodeType":"VariableDeclaration","scope":109277,"src":"2784:18:187","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$110588","typeString":"GameType"},"typeName":{"id":109224,"nodeType":"UserDefinedTypeName","pathNode":{"id":109223,"name":"GameType","nodeType":"IdentifierPath","referencedDeclaration":110588,"src":"2784:8:187"},"referencedDeclaration":110588,"src":"2784:8:187","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_GameType_$110588","typeString":"GameType"}},"visibility":"internal"},{"constant":false,"id":109228,"mutability":"mutable","name":"_absolutePrestate","nameLocation":"2818:17:187","nodeType":"VariableDeclaration","scope":109277,"src":"2812:23:187","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$110496","typeString":"Claim"},"typeName":{"id":109227,"nodeType":"UserDefinedTypeName","pathNode":{"id":109226,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":110496,"src":"2812:5:187"},"referencedDeclaration":110496,"src":"2812:5:187","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$110496","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":109230,"mutability":"mutable","name":"_maxGameDepth","nameLocation":"2853:13:187","nodeType":"VariableDeclaration","scope":109277,"src":"2845:21:187","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":109229,"name":"uint256","nodeType":"ElementaryTypeName","src":"2845:7:187","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":109232,"mutability":"mutable","name":"_splitDepth","nameLocation":"2884:11:187","nodeType":"VariableDeclaration","scope":109277,"src":"2876:19:187","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":109231,"name":"uint256","nodeType":"ElementaryTypeName","src":"2876:7:187","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":109235,"mutability":"mutable","name":"_clockExtension","nameLocation":"2914:15:187","nodeType":"VariableDeclaration","scope":109277,"src":"2905:24:187","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$110528","typeString":"Duration"},"typeName":{"id":109234,"nodeType":"UserDefinedTypeName","pathNode":{"id":109233,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":110528,"src":"2905:8:187"},"referencedDeclaration":110528,"src":"2905:8:187","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$110528","typeString":"Duration"}},"visibility":"internal"},{"constant":false,"id":109238,"mutability":"mutable","name":"_maxClockDuration","nameLocation":"2948:17:187","nodeType":"VariableDeclaration","scope":109277,"src":"2939:26:187","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$110528","typeString":"Duration"},"typeName":{"id":109237,"nodeType":"UserDefinedTypeName","pathNode":{"id":109236,"name":"Duration","nodeType":"IdentifierPath","referencedDeclaration":110528,"src":"2939:8:187"},"referencedDeclaration":110528,"src":"2939:8:187","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Duration_$110528","typeString":"Duration"}},"visibility":"internal"},{"constant":false,"id":109241,"mutability":"mutable","name":"_vm","nameLocation":"2987:3:187","nodeType":"VariableDeclaration","scope":109277,"src":"2975:15:187","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBigStepper_$109435","typeString":"contract IBigStepper"},"typeName":{"id":109240,"nodeType":"UserDefinedTypeName","pathNode":{"id":109239,"name":"IBigStepper","nodeType":"IdentifierPath","referencedDeclaration":109435,"src":"2975:11:187"},"referencedDeclaration":109435,"src":"2975:11:187","typeDescriptions":{"typeIdentifier":"t_contract$_IBigStepper_$109435","typeString":"contract IBigStepper"}},"visibility":"internal"},{"constant":false,"id":109244,"mutability":"mutable","name":"_weth","nameLocation":"3013:5:187","nodeType":"VariableDeclaration","scope":109277,"src":"3000:18:187","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDelayedWETH_$109503","typeString":"contract IDelayedWETH"},"typeName":{"id":109243,"nodeType":"UserDefinedTypeName","pathNode":{"id":109242,"name":"IDelayedWETH","nodeType":"IdentifierPath","referencedDeclaration":109503,"src":"3000:12:187"},"referencedDeclaration":109503,"src":"3000:12:187","typeDescriptions":{"typeIdentifier":"t_contract$_IDelayedWETH_$109503","typeString":"contract IDelayedWETH"}},"visibility":"internal"},{"constant":false,"id":109247,"mutability":"mutable","name":"_anchorStateRegistry","nameLocation":"3049:20:187","nodeType":"VariableDeclaration","scope":109277,"src":"3028:41:187","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAnchorStateRegistry_$109410","typeString":"contract IAnchorStateRegistry"},"typeName":{"id":109246,"nodeType":"UserDefinedTypeName","pathNode":{"id":109245,"name":"IAnchorStateRegistry","nodeType":"IdentifierPath","referencedDeclaration":109410,"src":"3028:20:187"},"referencedDeclaration":109410,"src":"3028:20:187","typeDescriptions":{"typeIdentifier":"t_contract$_IAnchorStateRegistry_$109410","typeString":"contract IAnchorStateRegistry"}},"visibility":"internal"},{"constant":false,"id":109249,"mutability":"mutable","name":"_l2ChainId","nameLocation":"3087:10:187","nodeType":"VariableDeclaration","scope":109277,"src":"3079:18:187","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":109248,"name":"uint256","nodeType":"ElementaryTypeName","src":"3079:7:187","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":109251,"mutability":"mutable","name":"_proposer","nameLocation":"3115:9:187","nodeType":"VariableDeclaration","scope":109277,"src":"3107:17:187","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109250,"name":"address","nodeType":"ElementaryTypeName","src":"3107:7:187","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109253,"mutability":"mutable","name":"_challenger","nameLocation":"3142:11:187","nodeType":"VariableDeclaration","scope":109277,"src":"3134:19:187","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109252,"name":"address","nodeType":"ElementaryTypeName","src":"3134:7:187","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2774:385:187"},"returnParameters":{"id":109267,"nodeType":"ParameterList","parameters":[],"src":"3459:0:187"},"scope":109371,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":109302,"nodeType":"FunctionDefinition","src":"3574:269:187","nodes":[],"body":{"id":109301,"nodeType":"Block","src":"3772:71:187","nodes":[],"statements":[{"expression":{"arguments":[{"id":109295,"name":"_claimIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109280,"src":"3793:11:187","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":109296,"name":"_isAttack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109282,"src":"3806:9:187","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":109297,"name":"_stateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109284,"src":"3817:10:187","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":109298,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109286,"src":"3829:6:187","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":109292,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3782:5:187","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_PermissionedDisputeGame_$109371_$","typeString":"type(contract super PermissionedDisputeGame)"}},"id":109294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"step","nodeType":"MemberAccess","referencedDeclaration":107178,"src":"3782:10:187","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$_t_bytes_calldata_ptr_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (uint256,bool,bytes calldata,bytes calldata)"}},"id":109299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3782:54:187","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109300,"nodeType":"ExpressionStatement","src":"3782:54:187"}]},"baseFunctions":[107178],"documentation":{"id":109278,"nodeType":"StructuredDocumentation","src":"3536:33:187","text":"@inheritdoc IFaultDisputeGame"},"functionSelector":"d8cc1a3c","implemented":true,"kind":"function","modifiers":[{"id":109290,"kind":"modifierInvocation","modifierName":{"id":109289,"name":"onlyAuthorized","nodeType":"IdentifierPath","referencedDeclaration":109221,"src":"3753:14:187"},"nodeType":"ModifierInvocation","src":"3753:14:187"}],"name":"step","nameLocation":"3583:4:187","overrides":{"id":109288,"nodeType":"OverrideSpecifier","overrides":[],"src":"3736:8:187"},"parameters":{"id":109287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109280,"mutability":"mutable","name":"_claimIndex","nameLocation":"3605:11:187","nodeType":"VariableDeclaration","scope":109302,"src":"3597:19:187","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":109279,"name":"uint256","nodeType":"ElementaryTypeName","src":"3597:7:187","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":109282,"mutability":"mutable","name":"_isAttack","nameLocation":"3631:9:187","nodeType":"VariableDeclaration","scope":109302,"src":"3626:14:187","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":109281,"name":"bool","nodeType":"ElementaryTypeName","src":"3626:4:187","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":109284,"mutability":"mutable","name":"_stateData","nameLocation":"3665:10:187","nodeType":"VariableDeclaration","scope":109302,"src":"3650:25:187","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":109283,"name":"bytes","nodeType":"ElementaryTypeName","src":"3650:5:187","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":109286,"mutability":"mutable","name":"_proof","nameLocation":"3700:6:187","nodeType":"VariableDeclaration","scope":109302,"src":"3685:21:187","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":109285,"name":"bytes","nodeType":"ElementaryTypeName","src":"3685:5:187","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3587:125:187"},"returnParameters":{"id":109291,"nodeType":"ParameterList","parameters":[],"src":"3772:0:187"},"scope":109371,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":109329,"nodeType":"FunctionDefinition","src":"4241:273:187","nodes":[],"body":{"id":109328,"nodeType":"Block","src":"4440:74:187","nodes":[],"statements":[{"expression":{"arguments":[{"id":109322,"name":"_disputed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109306,"src":"4461:9:187","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$110496","typeString":"Claim"}},{"id":109323,"name":"_challengeIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109308,"src":"4472:15:187","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":109324,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109311,"src":"4489:6:187","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$110496","typeString":"Claim"}},{"id":109325,"name":"_isAttack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109313,"src":"4497:9:187","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Claim_$110496","typeString":"Claim"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_userDefinedValueType$_Claim_$110496","typeString":"Claim"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":109319,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"4450:5:187","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_PermissionedDisputeGame_$109371_$","typeString":"type(contract super PermissionedDisputeGame)"}},"id":109321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"move","nodeType":"MemberAccess","referencedDeclaration":107475,"src":"4450:10:187","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_Claim_$110496_$_t_uint256_$_t_userDefinedValueType$_Claim_$110496_$_t_bool_$returns$__$","typeString":"function (Claim,uint256,Claim,bool)"}},"id":109326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4450:57:187","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109327,"nodeType":"ExpressionStatement","src":"4450:57:187"}]},"baseFunctions":[107475],"documentation":{"id":109303,"nodeType":"StructuredDocumentation","src":"3849:387:187","text":"@notice Generic move function, used for both `attack` and `defend` moves.\n @notice _disputed The disputed `Claim`.\n @param _challengeIndex The index of the claim being moved against. This must match the `_disputed` claim.\n @param _claim The claim at the next logical position in the game.\n @param _isAttack Whether or not the move is an attack or defense."},"functionSelector":"6f034409","implemented":true,"kind":"function","modifiers":[{"id":109317,"kind":"modifierInvocation","modifierName":{"id":109316,"name":"onlyAuthorized","nodeType":"IdentifierPath","referencedDeclaration":109221,"src":"4421:14:187"},"nodeType":"ModifierInvocation","src":"4421:14:187"}],"name":"move","nameLocation":"4250:4:187","overrides":{"id":109315,"nodeType":"OverrideSpecifier","overrides":[],"src":"4404:8:187"},"parameters":{"id":109314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109306,"mutability":"mutable","name":"_disputed","nameLocation":"4270:9:187","nodeType":"VariableDeclaration","scope":109329,"src":"4264:15:187","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$110496","typeString":"Claim"},"typeName":{"id":109305,"nodeType":"UserDefinedTypeName","pathNode":{"id":109304,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":110496,"src":"4264:5:187"},"referencedDeclaration":110496,"src":"4264:5:187","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$110496","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":109308,"mutability":"mutable","name":"_challengeIndex","nameLocation":"4297:15:187","nodeType":"VariableDeclaration","scope":109329,"src":"4289:23:187","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":109307,"name":"uint256","nodeType":"ElementaryTypeName","src":"4289:7:187","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":109311,"mutability":"mutable","name":"_claim","nameLocation":"4328:6:187","nodeType":"VariableDeclaration","scope":109329,"src":"4322:12:187","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$110496","typeString":"Claim"},"typeName":{"id":109310,"nodeType":"UserDefinedTypeName","pathNode":{"id":109309,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":110496,"src":"4322:5:187"},"referencedDeclaration":110496,"src":"4322:5:187","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Claim_$110496","typeString":"Claim"}},"visibility":"internal"},{"constant":false,"id":109313,"mutability":"mutable","name":"_isAttack","nameLocation":"4349:9:187","nodeType":"VariableDeclaration","scope":109329,"src":"4344:14:187","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":109312,"name":"bool","nodeType":"ElementaryTypeName","src":"4344:4:187","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4254:110:187"},"returnParameters":{"id":109318,"nodeType":"ParameterList","parameters":[],"src":"4440:0:187"},"scope":109371,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":109348,"nodeType":"FunctionDefinition","src":"4555:243:187","nodes":[],"body":{"id":109347,"nodeType":"Block","src":"4601:197:187","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":109337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":109334,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"4684:2:187","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":109335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"origin","nodeType":"MemberAccess","src":"4684:9:187","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":109336,"name":"PROPOSER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109197,"src":"4697:8:187","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4684:21:187","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":109341,"nodeType":"IfStatement","src":"4680:43:187","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":109338,"name":"BadAuth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110140,"src":"4714:7:187","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":109339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4714:9:187","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109340,"nodeType":"RevertStatement","src":"4707:16:187"}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":109342,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"4773:5:187","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_PermissionedDisputeGame_$109371_$","typeString":"type(contract super PermissionedDisputeGame)"}},"id":109344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":106976,"src":"4773:16:187","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":109345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4773:18:187","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109346,"nodeType":"ExpressionStatement","src":"4773:18:187"}]},"baseFunctions":[106976],"documentation":{"id":109330,"nodeType":"StructuredDocumentation","src":"4520:30:187","text":"@inheritdoc IInitializable"},"functionSelector":"8129fc1c","implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"4564:10:187","overrides":{"id":109332,"nodeType":"OverrideSpecifier","overrides":[],"src":"4592:8:187"},"parameters":{"id":109331,"nodeType":"ParameterList","parameters":[],"src":"4574:2:187"},"returnParameters":{"id":109333,"nodeType":"ParameterList","parameters":[],"src":"4601:0:187"},"scope":109371,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":109359,"nodeType":"FunctionDefinition","src":"5058:99:187","nodes":[],"body":{"id":109358,"nodeType":"Block","src":"5120:37:187","nodes":[],"statements":[{"expression":{"id":109356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":109354,"name":"proposer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109352,"src":"5130:9:187","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":109355,"name":"PROPOSER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109197,"src":"5142:8:187","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5130:20:187","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":109357,"nodeType":"ExpressionStatement","src":"5130:20:187"}]},"documentation":{"id":109349,"nodeType":"StructuredDocumentation","src":"5012:41:187","text":"@notice Returns the proposer address."},"functionSelector":"a8e4fb90","implemented":true,"kind":"function","modifiers":[],"name":"proposer","nameLocation":"5067:8:187","parameters":{"id":109350,"nodeType":"ParameterList","parameters":[],"src":"5075:2:187"},"returnParameters":{"id":109353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109352,"mutability":"mutable","name":"proposer_","nameLocation":"5109:9:187","nodeType":"VariableDeclaration","scope":109359,"src":"5101:17:187","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109351,"name":"address","nodeType":"ElementaryTypeName","src":"5101:7:187","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5100:19:187"},"scope":109371,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":109370,"nodeType":"FunctionDefinition","src":"5211:107:187","nodes":[],"body":{"id":109369,"nodeType":"Block","src":"5277:41:187","nodes":[],"statements":[{"expression":{"id":109367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":109365,"name":"challenger_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109363,"src":"5287:11:187","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":109366,"name":"CHALLENGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109200,"src":"5301:10:187","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5287:24:187","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":109368,"nodeType":"ExpressionStatement","src":"5287:24:187"}]},"documentation":{"id":109360,"nodeType":"StructuredDocumentation","src":"5163:43:187","text":"@notice Returns the challenger address."},"functionSelector":"534db0e2","implemented":true,"kind":"function","modifiers":[],"name":"challenger","nameLocation":"5220:10:187","parameters":{"id":109361,"nodeType":"ParameterList","parameters":[],"src":"5230:2:187"},"returnParameters":{"id":109364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109363,"mutability":"mutable","name":"challenger_","nameLocation":"5264:11:187","nodeType":"VariableDeclaration","scope":109370,"src":"5256:19:187","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109362,"name":"address","nodeType":"ElementaryTypeName","src":"5256:7:187","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5255:21:187"},"scope":109371,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":109193,"name":"FaultDisputeGame","nodeType":"IdentifierPath","referencedDeclaration":109178,"src":"1223:16:187"},"id":109194,"nodeType":"InheritanceSpecifier","src":"1223:16:187"}],"canonicalName":"PermissionedDisputeGame","contractDependencies":[],"contractKind":"contract","documentation":{"id":109192,"nodeType":"StructuredDocumentation","src":"408:779:187","text":"@title PermissionedDisputeGame\n @notice PermissionedDisputeGame is a contract that inherits from `FaultDisputeGame`, and contains two roles:\n         - The `challenger` role, which is allowed to challenge a dispute.\n         - The `proposer` role, which is allowed to create proposals and participate in their game.\n         This contract exists as a way for networks to support the fault proof iteration of the OptimismPortal\n         contract without needing to support a fully permissionless system. Permissionless systems can introduce\n         costs that certain networks may not wish to support. This contract can also be used as a fallback mechanism\n         in case of a failure in the permissionless fault proof system in the stage one release."},"fullyImplemented":true,"linearizedBaseContracts":[109371,109178,122319,61484,109898,109591,109906],"name":"PermissionedDisputeGame","nameLocation":"1196:23:187","scope":109372,"usedErrors":[110047,110050,110053,110056,110059,110065,110068,110071,110074,110077,110080,110083,110086,110089,110092,110098,110101,110104,110107,110110,110113,110116,110119,110122,110125,110128,110131,110134,110137,110140,115013,115016,115019,115022,115025,115028]}],"license":"MIT"},"id":187}