{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"attest","inputs":[{"name":"attestationPayload","type":"tuple","internalType":"struct AttestationPayload","components":[{"name":"schemaId","type":"bytes32","internalType":"bytes32"},{"name":"expirationDate","type":"uint64","internalType":"uint64"},{"name":"subject","type":"bytes","internalType":"bytes"},{"name":"attestationData","type":"bytes","internalType":"bytes"}]},{"name":"attester","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"balanceOfBatch","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"bulkAttest","inputs":[{"name":"attestationsPayloads","type":"tuple[]","internalType":"struct AttestationPayload[]","components":[{"name":"schemaId","type":"bytes32","internalType":"bytes32"},{"name":"expirationDate","type":"uint64","internalType":"uint64"},{"name":"subject","type":"bytes","internalType":"bytes"},{"name":"attestationData","type":"bytes","internalType":"bytes"}]},{"name":"attester","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bulkReplace","inputs":[{"name":"attestationIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"attestationPayloads","type":"tuple[]","internalType":"struct AttestationPayload[]","components":[{"name":"schemaId","type":"bytes32","internalType":"bytes32"},{"name":"expirationDate","type":"uint64","internalType":"uint64"},{"name":"subject","type":"bytes","internalType":"bytes"},{"name":"attestationData","type":"bytes","internalType":"bytes"}]},{"name":"attester","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bulkRevoke","inputs":[{"name":"attestationIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAttestation","inputs":[{"name":"attestationId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Attestation","components":[{"name":"attestationId","type":"bytes32","internalType":"bytes32"},{"name":"schemaId","type":"bytes32","internalType":"bytes32"},{"name":"replacedBy","type":"bytes32","internalType":"bytes32"},{"name":"attester","type":"address","internalType":"address"},{"name":"portal","type":"address","internalType":"address"},{"name":"attestedDate","type":"uint64","internalType":"uint64"},{"name":"expirationDate","type":"uint64","internalType":"uint64"},{"name":"revocationDate","type":"uint64","internalType":"uint64"},{"name":"version","type":"uint16","internalType":"uint16"},{"name":"revoked","type":"bool","internalType":"bool"},{"name":"subject","type":"bytes","internalType":"bytes"},{"name":"attestationData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"getAttestationIdCounter","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"getChainPrefix","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getNextAttestationId","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getVersionNumber","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"incrementVersionNumber","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"_router","type":"address","internalType":"address"},{"name":"_chainPrefix","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isRegistered","inputs":[{"name":"attestationId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isRevocable","inputs":[{"name":"portalId","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"massImport","inputs":[{"name":"attestationsPayloads","type":"tuple[]","internalType":"struct AttestationPayload[]","components":[{"name":"schemaId","type":"bytes32","internalType":"bytes32"},{"name":"expirationDate","type":"uint64","internalType":"uint64"},{"name":"subject","type":"bytes","internalType":"bytes"},{"name":"attestationData","type":"bytes","internalType":"bytes"}]},{"name":"portal","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"replace","inputs":[{"name":"attestationId","type":"bytes32","internalType":"bytes32"},{"name":"attestationPayload","type":"tuple","internalType":"struct AttestationPayload","components":[{"name":"schemaId","type":"bytes32","internalType":"bytes32"},{"name":"expirationDate","type":"uint64","internalType":"uint64"},{"name":"subject","type":"bytes","internalType":"bytes"},{"name":"attestationData","type":"bytes","internalType":"bytes"}]},{"name":"attester","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revoke","inputs":[{"name":"attestationId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRouter"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AttestationRegistered","inputs":[{"name":"attestationId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"AttestationReplaced","inputs":[{"name":"attestationId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"replacedBy","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"AttestationRevoked","inputs":[{"name":"attestationId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ChainPrefixUpdated","inputs":[{"name":"chainPrefix","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RouterSet","inputs":[{"name":"router","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VersionUpdated","inputs":[{"name":"version","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"error","name":"AlreadyRevoked","inputs":[]},{"type":"error","name":"ArrayLengthMismatch","inputs":[]},{"type":"error","name":"AttestationDataFieldEmpty","inputs":[]},{"type":"error","name":"AttestationNotAttested","inputs":[]},{"type":"error","name":"AttestationNotRevocable","inputs":[]},{"type":"error","name":"AttestationSubjectFieldEmpty","inputs":[]},{"type":"error","name":"ChainPrefixFormatInvalid","inputs":[]},{"type":"error","name":"OnlyAttestingPortal","inputs":[]},{"type":"error","name":"OnlyPortal","inputs":[]},{"type":"error","name":"RouterAddressInvalid","inputs":[]},{"type":"error","name":"SchemaNotRegistered","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061001961001e565b6100dd565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146100db576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61231f80620000ed6000396000f3fe608060405234801561001057600080fd5b50600436106101415760003560e01c8063a3112a64116100b8578063d46f6a2c1161007c578063d46f6a2c146102d3578063eed95611146102e6578063f20c1416146102ee578063f2fde38b14610313578063f541295c14610326578063f887ea401461032e57600080fd5b8063a3112a6414610267578063a8e2812d14610287578063b75c7dc61461029a578063cd6dc687146102ad578063d0fc9f83146102c057600080fd5b806354255be01161010a57806354255be0146101ee57806362fa3d45146102015780636ec4d4cb14610214578063715018a6146102275780638da5cb5b1461022f5780638ffa736b1461025457600080fd5b8062fdd58e1461014657806327258b221461016c5780634ada80761461019e5780634cbe11cb146101b35780634e1273f4146101ce575b600080fd5b610159610154366004611af1565b610341565b6040519081526020015b60405180910390f35b61018e61017a366004611b1d565b600090815260666020526040902054151590565b6040519015158152602001610163565b6101b16101ac366004611b81565b610620565b005b6101bb610659565b60405161ffff9091168152602001610163565b6101e16101dc366004611bc2565b6106eb565b6040516101639190611c2d565b606554600160a01b900461ffff166101bb565b6101b161020f366004611c89565b6107d5565b6101b1610222366004611cda565b610d27565b6101b1610da8565b6033546001600160a01b03165b6040516001600160a01b039091168152602001610163565b6101b1610262366004611d5d565b610dbc565b61027a610275366004611b1d565b610e42565b6040516101639190611dfd565b6101b1610295366004611f06565b6110ae565b6101b16102a8366004611b1d565b6110f4565b6101b16102bb366004611af1565b611259565b6101b16102ce366004611f06565b611448565b61018e6102e1366004611f51565b6117d8565b6101596118c7565b606554600160b01b900463ffffffff1660405163ffffffff9091168152602001610163565b6101b1610321366004611f51565b611923565b606754610159565b60655461023c906001600160a01b031681565b60008061034d8361199c565b60008181526066602090815260408083208151610180810183528154815260018201549381019390935260028101549183019190915260038101546001600160a01b03908116606084015260048201549081166080840152600160a01b90046001600160401b0390811660a0840152600582015480821660c0850152600160401b810490911660e0840152600160801b810461ffff16610100840152600160901b900460ff1615156101208301526006810180549495509293919290916101408401919061041a90611f6e565b80601f016020809104026020016040519081016040528092919081815260200182805461044690611f6e565b80156104935780601f1061046857610100808354040283529160200191610493565b820191906000526020600020905b81548152906001019060200180831161047657829003601f168201915b505050505081526020016007820180546104ac90611f6e565b80601f01602080910402602001604051908101604052809291908181526020018280546104d890611f6e565b80156105255780601f106104fa57610100808354040283529160200191610525565b820191906000526020600020905b81548152906001019060200180831161050857829003601f168201915b505050919092525050815191925061054490505760009250505061061a565b610120810151151560010361055e5760009250505061061a565b60c08101516001600160401b0316158015906105875750428160c001516001600160401b031611155b156105975760009250505061061a565b8061014001515160201480156105c457506101408101516001600160a01b038616906105c290611fa2565b145b156105d45760019250505061061a565b8061014001515160141480156106035750846001600160a01b03168161014001516105fe90611fc6565b60601c145b156106135760019250505061061a565b6000925050505b92915050565b60005b818110156106545761064c83838381811061064057610640612002565b905060200201356110f4565b600101610623565b505050565b60006106636119d6565b6065805460149061067e90600160a01b900461ffff1661202e565b82546101009290920a61ffff818102199093169183160217909155606554604051600160a01b90910490911681527f5891971a9a7b7a3d45b4bec8fe5ec184b79ca6d26177fbbddad04baa14fdc72c9060200160405180910390a150606554600160a01b900461ffff1690565b606083821461070d5760405163512509d360e11b815260040160405180910390fd5b6000846001600160401b038111156107275761072761204f565b604051908082528060200260200182016040528015610750578160200160208202803683370190505b50905060005b858110156107cb576107a687878381811061077357610773612002565b90506020020160208101906107889190611f51565b86868481811061079a5761079a612002565b90506020020135610341565b8282815181106107b8576107b8612002565b6020908102919091010152600101610756565b5095945050505050565b336000606560009054906101000a90046001600160a01b03166001600160a01b031663b7dac9766040518163ffffffff1660e01b8152600401602060405180830381865afa15801561082b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084f9190612065565b60405163c3c5a54760e01b81526001600160a01b038481166004830152919091169063c3c5a54790602401602060405180830381865afa158015610897573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bb9190612082565b9050806108db57604051630f46c81b60e21b815260040160405180910390fd5b60655460408051631e216b9960e31b815290516000926001600160a01b03169163f10b5cc89160048083019260209291908290030181865afa158015610925573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109499190612065565b604051631392c59160e11b8152863560048201529091506001600160a01b038216906327258b2290602401602060405180830381865afa158015610991573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b59190612082565b6109d257604051638cc004a960e01b815260040160405180910390fd5b6109df60408601866120a4565b9050600003610a0157604051636367e41160e01b815260040160405180910390fd5b610a0e60608601866120a4565b9050600003610a3057604051634e46e0b360e01b815260040160405180910390fd5b60658054600160b01b900463ffffffff16906016610a4d836120ea565b91906101000a81548163ffffffff021916908363ffffffff160217905550506000610a8f606560169054906101000a900463ffffffff1663ffffffff1661199c565b90508015801590610aac5750600081815260666020526040902054155b610ab857610ab8612103565b604080516101808101825282815287356020808301919091526000828401526001600160a01b03881660608301523360808301526001600160401b03421660a0830152909160c0830191610b10918a01908a01612119565b6001600160401b03168152600060208201819052606554600160a01b900461ffff166040808401919091526060830191909152608090910190610b55908901896120a4565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602001610b9c60608901896120a4565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250939094525050838152606660209081526040918290208451815590840151600182015590830151600282015560608301516003820180546001600160a01b039283166001600160a01b0319909116179055608084015160048301805460a08701516001600160401b03908116600160a01b026001600160e01b0319909216939094169290921791909117905560c084015160058301805460e08701516101008801516101208901511515600160901b0260ff60901b1961ffff909216600160801b029190911662ffffff60801b19928716600160401b026001600160801b031990941695909616949094179190911716929092171790556101408301519091506006820190610cdb9082612188565b506101608201516007820190610cf19082612188565b50506040518291507ffe10586889e06530420fe4a0d86aa4f7afc3c9dc84b0c77b731a9615496ef18a90600090a2505050505050565b838214610d475760405163512509d360e11b815260040160405180910390fd5b60005b84811015610da057610d98868683818110610d6757610d67612002565b90506020020135858584818110610d8057610d80612002565b9050602002810190610d929190612247565b84610dbc565b600101610d4a565b505050505050565b610db06119d6565b610dba6000611a30565b565b610dc5836110f4565b610dcf82826107d5565b606554600090610deb90600160b01b900463ffffffff1661199c565b60008581526066602090815260409182902060020183905581518781529081018390529192507f77d674474bd19340e11693fde02ab981634002a50709bcaf013916b59e40c07d910160405180910390a150505050565b60408051610180810182526000808252602080830182905282840182905260608084018390526080840183905260a0840183905260c0840183905260e08401839052610100840183905261012084018390526101408401819052610160840152848252606690529190912054610ecb5760405163038d7caf60e21b815260040160405180910390fd5b6000828152606660209081526040918290208251610180810184528154815260018201549281019290925260028101549282019290925260038201546001600160a01b03908116606083015260048301549081166080830152600160a01b90046001600160401b0390811660a0830152600583015480821660c0840152600160401b810490911660e0830152600160801b810461ffff16610100830152600160901b900460ff16151561012082015260068201805491929161014084019190610f9390611f6e565b80601f0160208091040260200160405190810160405280929190818152602001828054610fbf90611f6e565b801561100c5780601f10610fe15761010080835404028352916020019161100c565b820191906000526020600020905b815481529060010190602001808311610fef57829003601f168201915b5050505050815260200160078201805461102590611f6e565b80601f016020809104026020016040519081016040528092919081815260200182805461105190611f6e565b801561109e5780601f106110735761010080835404028352916020019161109e565b820191906000526020600020905b81548152906001019060200180831161108157829003601f168201915b5050505050815250509050919050565b60005b828110156110ee576110e68484838181106110ce576110ce612002565b90506020028101906110e09190612247565b836107d5565b6001016110b1565b50505050565b6000818152606660205260409020546111205760405163038d7caf60e21b815260040160405180910390fd5b600081815260666020526040902060050154600160901b900460ff161561115a5760405163905e710760e01b815260040160405180910390fd5b6000818152606660205260409020600401546001600160a01b031633146111975760405160016246018d60e01b0319815260040160405180910390fd5b6000818152606660205260409020600401546111bb906001600160a01b03166117d8565b6111d857604051632e7eadc560e11b815260040160405180910390fd5b6000818152606660205260409081902060050180546001600160401b034216600160401b0272ff0000ffffffffffffffff00000000000000001990911617600160901b179055517f04bed256ad23fe17d61d9248ee108825bf3b1d04527fee36f0ee2af633fc14529061124e9083815260200190565b60405180910390a150565b600054610100900460ff16158080156112795750600054600160ff909116105b806112935750303b158015611293575060005460ff166001145b6112fb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561131e576000805461ff0019166101001790555b611326611a82565b6001600160a01b03831661134d576040516380560ee760e01b815260040160405180910390fd5b606580546001600160a01b0319166001600160a01b0385169081179091556040519081527fc6b438e6a8a59579ce6a4406cbd203b740e0d47b458aae6596339bcd40c40d159060200160405180910390a16001600160f01b038216156113c657604051632768fd1160e21b815260040160405180910390fd5b60678290556040518281527f30c6ebeb3a852fb978fefd449f4aaaa91f79135f26dd7593ad72add893c68e7d9060200160405180910390a18015610654576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6114506119d6565b60005b828110156110ee5760658054600160b01b900463ffffffff16906016611478836120ea565b91906101000a81548163ffffffff021916908363ffffffff1602179055505060006114ba606560169054906101000a900463ffffffff1663ffffffff1661199c565b905080158015906114d75750600081815260666020526040902054155b6114e3576114e3612103565b60405180610180016040528082815260200186868581811061150757611507612002565b90506020028101906115199190612247565b358152600060208201523360408201526001600160a01b03851660608201526001600160401b034216608082015260a00186868581811061155c5761155c612002565b905060200281019061156e9190612247565b61157f906040810190602001612119565b6001600160401b03168152600060208201819052606554600160a01b900461ffff16604083015260608201526080018686858181106115c0576115c0612002565b90506020028101906115d29190612247565b6115e09060408101906120a4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060200186868581811061162c5761162c612002565b905060200281019061163e9190612247565b61164c9060608101906120a4565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250939094525050838152606660209081526040918290208451815590840151600182015590830151600282015560608301516003820180546001600160a01b039283166001600160a01b0319909116179055608084015160048301805460a08701516001600160401b03908116600160a01b026001600160e01b0319909216939094169290921791909117905560c084015160058301805460e08701516101008801516101208901511515600160901b0260ff60901b1961ffff909216600160801b029190911662ffffff60801b19928716600160401b026001600160801b03199094169590961694909417919091171692909217179055610140830151909150600682019061178b9082612188565b5061016082015160078201906117a19082612188565b50506040518291507ffe10586889e06530420fe4a0d86aa4f7afc3c9dc84b0c77b731a9615496ef18a90600090a250600101611453565b600080606560009054906101000a90046001600160a01b03166001600160a01b031663b7dac9766040518163ffffffff1660e01b8152600401602060405180830381865afa15801561182e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118529190612065565b604051630cb6c3f760e31b81526001600160a01b038581166004830152919250908216906365b61fb890602401602060405180830381865afa15801561189c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c09190612082565b9392505050565b60655460009081906118e790600160b01b900463ffffffff166001612267565b63ffffffff16905060006118fa8261199c565b905080158015906119175750600081815260666020526040902054155b61061a5761061a612103565b61192b6119d6565b6001600160a01b0381166119905760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016112f2565b61199981611a30565b50565b6000816067546119ac919061228b565b6040516020016119be91815260200190565b60405160208183030381529060405261061a90611fa2565b6033546001600160a01b03163314610dba5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016112f2565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16611aa95760405162461bcd60e51b81526004016112f29061229e565b610dba600054610100900460ff16611ad35760405162461bcd60e51b81526004016112f29061229e565b610dba33611a30565b6001600160a01b038116811461199957600080fd5b60008060408385031215611b0457600080fd5b8235611b0f81611adc565b946020939093013593505050565b600060208284031215611b2f57600080fd5b5035919050565b60008083601f840112611b4857600080fd5b5081356001600160401b03811115611b5f57600080fd5b6020830191508360208260051b8501011115611b7a57600080fd5b9250929050565b60008060208385031215611b9457600080fd5b82356001600160401b03811115611baa57600080fd5b611bb685828601611b36565b90969095509350505050565b60008060008060408587031215611bd857600080fd5b84356001600160401b0380821115611bef57600080fd5b611bfb88838901611b36565b90965094506020870135915080821115611c1457600080fd5b50611c2187828801611b36565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b81811015611c6557835183529284019291840191600101611c49565b50909695505050505050565b600060808284031215611c8357600080fd5b50919050565b60008060408385031215611c9c57600080fd5b82356001600160401b03811115611cb257600080fd5b611cbe85828601611c71565b9250506020830135611ccf81611adc565b809150509250929050565b600080600080600060608688031215611cf257600080fd5b85356001600160401b0380821115611d0957600080fd5b611d1589838a01611b36565b90975095506020880135915080821115611d2e57600080fd5b50611d3b88828901611b36565b9094509250506040860135611d4f81611adc565b809150509295509295909350565b600080600060608486031215611d7257600080fd5b8335925060208401356001600160401b03811115611d8f57600080fd5b611d9b86828701611c71565b9250506040840135611dac81611adc565b809150509250925092565b6000815180845260005b81811015611ddd57602081850181015186830182015201611dc1565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526040820151606082015260006060830151611e3860808401826001600160a01b03169052565b5060808301516001600160a01b03811660a08401525060a08301516001600160401b03811660c08401525060c08301516001600160401b03811660e08401525060e0830151610100611e94818501836001600160401b03169052565b8401519050610120611eab8482018361ffff169052565b8401519050610140611ec08482018315159052565b808501519150506101806101608181860152611ee06101a0860184611db7565b90860151858203601f190183870152909250611efc8382611db7565b9695505050505050565b600080600060408486031215611f1b57600080fd5b83356001600160401b03811115611f3157600080fd5b611f3d86828701611b36565b9094509250506020840135611dac81611adc565b600060208284031215611f6357600080fd5b81356118c081611adc565b600181811c90821680611f8257607f821691505b602082108103611c8357634e487b7160e01b600052602260045260246000fd5b80516020808301519190811015611c835760001960209190910360031b1b16919050565b805160208201516bffffffffffffffffffffffff198082169291906014831015611ffa5780818460140360031b1b83161693505b505050919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600061ffff80831681810361204557612045612018565b6001019392505050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561207757600080fd5b81516118c081611adc565b60006020828403121561209457600080fd5b815180151581146118c057600080fd5b6000808335601e198436030181126120bb57600080fd5b8301803591506001600160401b038211156120d557600080fd5b602001915036819003821315611b7a57600080fd5b600063ffffffff80831681810361204557612045612018565b634e487b7160e01b600052600160045260246000fd5b60006020828403121561212b57600080fd5b81356001600160401b03811681146118c057600080fd5b601f82111561065457600081815260208120601f850160051c810160208610156121695750805b601f850160051c820191505b81811015610da057828155600101612175565b81516001600160401b038111156121a1576121a161204f565b6121b5816121af8454611f6e565b84612142565b602080601f8311600181146121ea57600084156121d25750858301515b600019600386901b1c1916600185901b178555610da0565b600085815260208120601f198616915b82811015612219578886015182559484019460019091019084016121fa565b50858210156122375787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008235607e1983360301811261225d57600080fd5b9190910192915050565b63ffffffff81811683821601908082111561228457612284612018565b5092915050565b8082018082111561061a5761061a612018565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea26469706673582212200c85974aed36f5c6f1e3ac705b4c8782107c53567524c9064fd2dffa6249351064736f6c63430008150033","sourceMap":"566:13358:54:-:0;;;3179:47;;;;;;;;;-1:-1:-1;3199:22:54;:20;:22::i;:::-;566:13358;;5939:280:24;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:24;;216:2:113;5998:66:24;;;198:21:113;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:113;;;338:37;392:19;;5998:66:24;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:24;6140:15;6125:30;;;;;;6174:28;;564:36:113;;;6174:28:24;;552:2:113;537:18;6174:28:24;;;;;;;6074:139;5939:280::o;422:184:113:-;566:13358:54;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101415760003560e01c8063a3112a64116100b8578063d46f6a2c1161007c578063d46f6a2c146102d3578063eed95611146102e6578063f20c1416146102ee578063f2fde38b14610313578063f541295c14610326578063f887ea401461032e57600080fd5b8063a3112a6414610267578063a8e2812d14610287578063b75c7dc61461029a578063cd6dc687146102ad578063d0fc9f83146102c057600080fd5b806354255be01161010a57806354255be0146101ee57806362fa3d45146102015780636ec4d4cb14610214578063715018a6146102275780638da5cb5b1461022f5780638ffa736b1461025457600080fd5b8062fdd58e1461014657806327258b221461016c5780634ada80761461019e5780634cbe11cb146101b35780634e1273f4146101ce575b600080fd5b610159610154366004611af1565b610341565b6040519081526020015b60405180910390f35b61018e61017a366004611b1d565b600090815260666020526040902054151590565b6040519015158152602001610163565b6101b16101ac366004611b81565b610620565b005b6101bb610659565b60405161ffff9091168152602001610163565b6101e16101dc366004611bc2565b6106eb565b6040516101639190611c2d565b606554600160a01b900461ffff166101bb565b6101b161020f366004611c89565b6107d5565b6101b1610222366004611cda565b610d27565b6101b1610da8565b6033546001600160a01b03165b6040516001600160a01b039091168152602001610163565b6101b1610262366004611d5d565b610dbc565b61027a610275366004611b1d565b610e42565b6040516101639190611dfd565b6101b1610295366004611f06565b6110ae565b6101b16102a8366004611b1d565b6110f4565b6101b16102bb366004611af1565b611259565b6101b16102ce366004611f06565b611448565b61018e6102e1366004611f51565b6117d8565b6101596118c7565b606554600160b01b900463ffffffff1660405163ffffffff9091168152602001610163565b6101b1610321366004611f51565b611923565b606754610159565b60655461023c906001600160a01b031681565b60008061034d8361199c565b60008181526066602090815260408083208151610180810183528154815260018201549381019390935260028101549183019190915260038101546001600160a01b03908116606084015260048201549081166080840152600160a01b90046001600160401b0390811660a0840152600582015480821660c0850152600160401b810490911660e0840152600160801b810461ffff16610100840152600160901b900460ff1615156101208301526006810180549495509293919290916101408401919061041a90611f6e565b80601f016020809104026020016040519081016040528092919081815260200182805461044690611f6e565b80156104935780601f1061046857610100808354040283529160200191610493565b820191906000526020600020905b81548152906001019060200180831161047657829003601f168201915b505050505081526020016007820180546104ac90611f6e565b80601f01602080910402602001604051908101604052809291908181526020018280546104d890611f6e565b80156105255780601f106104fa57610100808354040283529160200191610525565b820191906000526020600020905b81548152906001019060200180831161050857829003601f168201915b505050919092525050815191925061054490505760009250505061061a565b610120810151151560010361055e5760009250505061061a565b60c08101516001600160401b0316158015906105875750428160c001516001600160401b031611155b156105975760009250505061061a565b8061014001515160201480156105c457506101408101516001600160a01b038616906105c290611fa2565b145b156105d45760019250505061061a565b8061014001515160141480156106035750846001600160a01b03168161014001516105fe90611fc6565b60601c145b156106135760019250505061061a565b6000925050505b92915050565b60005b818110156106545761064c83838381811061064057610640612002565b905060200201356110f4565b600101610623565b505050565b60006106636119d6565b6065805460149061067e90600160a01b900461ffff1661202e565b82546101009290920a61ffff818102199093169183160217909155606554604051600160a01b90910490911681527f5891971a9a7b7a3d45b4bec8fe5ec184b79ca6d26177fbbddad04baa14fdc72c9060200160405180910390a150606554600160a01b900461ffff1690565b606083821461070d5760405163512509d360e11b815260040160405180910390fd5b6000846001600160401b038111156107275761072761204f565b604051908082528060200260200182016040528015610750578160200160208202803683370190505b50905060005b858110156107cb576107a687878381811061077357610773612002565b90506020020160208101906107889190611f51565b86868481811061079a5761079a612002565b90506020020135610341565b8282815181106107b8576107b8612002565b6020908102919091010152600101610756565b5095945050505050565b336000606560009054906101000a90046001600160a01b03166001600160a01b031663b7dac9766040518163ffffffff1660e01b8152600401602060405180830381865afa15801561082b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084f9190612065565b60405163c3c5a54760e01b81526001600160a01b038481166004830152919091169063c3c5a54790602401602060405180830381865afa158015610897573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bb9190612082565b9050806108db57604051630f46c81b60e21b815260040160405180910390fd5b60655460408051631e216b9960e31b815290516000926001600160a01b03169163f10b5cc89160048083019260209291908290030181865afa158015610925573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109499190612065565b604051631392c59160e11b8152863560048201529091506001600160a01b038216906327258b2290602401602060405180830381865afa158015610991573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b59190612082565b6109d257604051638cc004a960e01b815260040160405180910390fd5b6109df60408601866120a4565b9050600003610a0157604051636367e41160e01b815260040160405180910390fd5b610a0e60608601866120a4565b9050600003610a3057604051634e46e0b360e01b815260040160405180910390fd5b60658054600160b01b900463ffffffff16906016610a4d836120ea565b91906101000a81548163ffffffff021916908363ffffffff160217905550506000610a8f606560169054906101000a900463ffffffff1663ffffffff1661199c565b90508015801590610aac5750600081815260666020526040902054155b610ab857610ab8612103565b604080516101808101825282815287356020808301919091526000828401526001600160a01b03881660608301523360808301526001600160401b03421660a0830152909160c0830191610b10918a01908a01612119565b6001600160401b03168152600060208201819052606554600160a01b900461ffff166040808401919091526060830191909152608090910190610b55908901896120a4565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602001610b9c60608901896120a4565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250939094525050838152606660209081526040918290208451815590840151600182015590830151600282015560608301516003820180546001600160a01b039283166001600160a01b0319909116179055608084015160048301805460a08701516001600160401b03908116600160a01b026001600160e01b0319909216939094169290921791909117905560c084015160058301805460e08701516101008801516101208901511515600160901b0260ff60901b1961ffff909216600160801b029190911662ffffff60801b19928716600160401b026001600160801b031990941695909616949094179190911716929092171790556101408301519091506006820190610cdb9082612188565b506101608201516007820190610cf19082612188565b50506040518291507ffe10586889e06530420fe4a0d86aa4f7afc3c9dc84b0c77b731a9615496ef18a90600090a2505050505050565b838214610d475760405163512509d360e11b815260040160405180910390fd5b60005b84811015610da057610d98868683818110610d6757610d67612002565b90506020020135858584818110610d8057610d80612002565b9050602002810190610d929190612247565b84610dbc565b600101610d4a565b505050505050565b610db06119d6565b610dba6000611a30565b565b610dc5836110f4565b610dcf82826107d5565b606554600090610deb90600160b01b900463ffffffff1661199c565b60008581526066602090815260409182902060020183905581518781529081018390529192507f77d674474bd19340e11693fde02ab981634002a50709bcaf013916b59e40c07d910160405180910390a150505050565b60408051610180810182526000808252602080830182905282840182905260608084018390526080840183905260a0840183905260c0840183905260e08401839052610100840183905261012084018390526101408401819052610160840152848252606690529190912054610ecb5760405163038d7caf60e21b815260040160405180910390fd5b6000828152606660209081526040918290208251610180810184528154815260018201549281019290925260028101549282019290925260038201546001600160a01b03908116606083015260048301549081166080830152600160a01b90046001600160401b0390811660a0830152600583015480821660c0840152600160401b810490911660e0830152600160801b810461ffff16610100830152600160901b900460ff16151561012082015260068201805491929161014084019190610f9390611f6e565b80601f0160208091040260200160405190810160405280929190818152602001828054610fbf90611f6e565b801561100c5780601f10610fe15761010080835404028352916020019161100c565b820191906000526020600020905b815481529060010190602001808311610fef57829003601f168201915b5050505050815260200160078201805461102590611f6e565b80601f016020809104026020016040519081016040528092919081815260200182805461105190611f6e565b801561109e5780601f106110735761010080835404028352916020019161109e565b820191906000526020600020905b81548152906001019060200180831161108157829003601f168201915b5050505050815250509050919050565b60005b828110156110ee576110e68484838181106110ce576110ce612002565b90506020028101906110e09190612247565b836107d5565b6001016110b1565b50505050565b6000818152606660205260409020546111205760405163038d7caf60e21b815260040160405180910390fd5b600081815260666020526040902060050154600160901b900460ff161561115a5760405163905e710760e01b815260040160405180910390fd5b6000818152606660205260409020600401546001600160a01b031633146111975760405160016246018d60e01b0319815260040160405180910390fd5b6000818152606660205260409020600401546111bb906001600160a01b03166117d8565b6111d857604051632e7eadc560e11b815260040160405180910390fd5b6000818152606660205260409081902060050180546001600160401b034216600160401b0272ff0000ffffffffffffffff00000000000000001990911617600160901b179055517f04bed256ad23fe17d61d9248ee108825bf3b1d04527fee36f0ee2af633fc14529061124e9083815260200190565b60405180910390a150565b600054610100900460ff16158080156112795750600054600160ff909116105b806112935750303b158015611293575060005460ff166001145b6112fb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561131e576000805461ff0019166101001790555b611326611a82565b6001600160a01b03831661134d576040516380560ee760e01b815260040160405180910390fd5b606580546001600160a01b0319166001600160a01b0385169081179091556040519081527fc6b438e6a8a59579ce6a4406cbd203b740e0d47b458aae6596339bcd40c40d159060200160405180910390a16001600160f01b038216156113c657604051632768fd1160e21b815260040160405180910390fd5b60678290556040518281527f30c6ebeb3a852fb978fefd449f4aaaa91f79135f26dd7593ad72add893c68e7d9060200160405180910390a18015610654576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6114506119d6565b60005b828110156110ee5760658054600160b01b900463ffffffff16906016611478836120ea565b91906101000a81548163ffffffff021916908363ffffffff1602179055505060006114ba606560169054906101000a900463ffffffff1663ffffffff1661199c565b905080158015906114d75750600081815260666020526040902054155b6114e3576114e3612103565b60405180610180016040528082815260200186868581811061150757611507612002565b90506020028101906115199190612247565b358152600060208201523360408201526001600160a01b03851660608201526001600160401b034216608082015260a00186868581811061155c5761155c612002565b905060200281019061156e9190612247565b61157f906040810190602001612119565b6001600160401b03168152600060208201819052606554600160a01b900461ffff16604083015260608201526080018686858181106115c0576115c0612002565b90506020028101906115d29190612247565b6115e09060408101906120a4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060200186868581811061162c5761162c612002565b905060200281019061163e9190612247565b61164c9060608101906120a4565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250939094525050838152606660209081526040918290208451815590840151600182015590830151600282015560608301516003820180546001600160a01b039283166001600160a01b0319909116179055608084015160048301805460a08701516001600160401b03908116600160a01b026001600160e01b0319909216939094169290921791909117905560c084015160058301805460e08701516101008801516101208901511515600160901b0260ff60901b1961ffff909216600160801b029190911662ffffff60801b19928716600160401b026001600160801b03199094169590961694909417919091171692909217179055610140830151909150600682019061178b9082612188565b5061016082015160078201906117a19082612188565b50506040518291507ffe10586889e06530420fe4a0d86aa4f7afc3c9dc84b0c77b731a9615496ef18a90600090a250600101611453565b600080606560009054906101000a90046001600160a01b03166001600160a01b031663b7dac9766040518163ffffffff1660e01b8152600401602060405180830381865afa15801561182e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118529190612065565b604051630cb6c3f760e31b81526001600160a01b038581166004830152919250908216906365b61fb890602401602060405180830381865afa15801561189c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c09190612082565b9392505050565b60655460009081906118e790600160b01b900463ffffffff166001612267565b63ffffffff16905060006118fa8261199c565b905080158015906119175750600081815260666020526040902054155b61061a5761061a612103565b61192b6119d6565b6001600160a01b0381166119905760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016112f2565b61199981611a30565b50565b6000816067546119ac919061228b565b6040516020016119be91815260200190565b60405160208183030381529060405261061a90611fa2565b6033546001600160a01b03163314610dba5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016112f2565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16611aa95760405162461bcd60e51b81526004016112f29061229e565b610dba600054610100900460ff16611ad35760405162461bcd60e51b81526004016112f29061229e565b610dba33611a30565b6001600160a01b038116811461199957600080fd5b60008060408385031215611b0457600080fd5b8235611b0f81611adc565b946020939093013593505050565b600060208284031215611b2f57600080fd5b5035919050565b60008083601f840112611b4857600080fd5b5081356001600160401b03811115611b5f57600080fd5b6020830191508360208260051b8501011115611b7a57600080fd5b9250929050565b60008060208385031215611b9457600080fd5b82356001600160401b03811115611baa57600080fd5b611bb685828601611b36565b90969095509350505050565b60008060008060408587031215611bd857600080fd5b84356001600160401b0380821115611bef57600080fd5b611bfb88838901611b36565b90965094506020870135915080821115611c1457600080fd5b50611c2187828801611b36565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b81811015611c6557835183529284019291840191600101611c49565b50909695505050505050565b600060808284031215611c8357600080fd5b50919050565b60008060408385031215611c9c57600080fd5b82356001600160401b03811115611cb257600080fd5b611cbe85828601611c71565b9250506020830135611ccf81611adc565b809150509250929050565b600080600080600060608688031215611cf257600080fd5b85356001600160401b0380821115611d0957600080fd5b611d1589838a01611b36565b90975095506020880135915080821115611d2e57600080fd5b50611d3b88828901611b36565b9094509250506040860135611d4f81611adc565b809150509295509295909350565b600080600060608486031215611d7257600080fd5b8335925060208401356001600160401b03811115611d8f57600080fd5b611d9b86828701611c71565b9250506040840135611dac81611adc565b809150509250925092565b6000815180845260005b81811015611ddd57602081850181015186830182015201611dc1565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526040820151606082015260006060830151611e3860808401826001600160a01b03169052565b5060808301516001600160a01b03811660a08401525060a08301516001600160401b03811660c08401525060c08301516001600160401b03811660e08401525060e0830151610100611e94818501836001600160401b03169052565b8401519050610120611eab8482018361ffff169052565b8401519050610140611ec08482018315159052565b808501519150506101806101608181860152611ee06101a0860184611db7565b90860151858203601f190183870152909250611efc8382611db7565b9695505050505050565b600080600060408486031215611f1b57600080fd5b83356001600160401b03811115611f3157600080fd5b611f3d86828701611b36565b9094509250506020840135611dac81611adc565b600060208284031215611f6357600080fd5b81356118c081611adc565b600181811c90821680611f8257607f821691505b602082108103611c8357634e487b7160e01b600052602260045260246000fd5b80516020808301519190811015611c835760001960209190910360031b1b16919050565b805160208201516bffffffffffffffffffffffff198082169291906014831015611ffa5780818460140360031b1b83161693505b505050919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600061ffff80831681810361204557612045612018565b6001019392505050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561207757600080fd5b81516118c081611adc565b60006020828403121561209457600080fd5b815180151581146118c057600080fd5b6000808335601e198436030181126120bb57600080fd5b8301803591506001600160401b038211156120d557600080fd5b602001915036819003821315611b7a57600080fd5b600063ffffffff80831681810361204557612045612018565b634e487b7160e01b600052600160045260246000fd5b60006020828403121561212b57600080fd5b81356001600160401b03811681146118c057600080fd5b601f82111561065457600081815260208120601f850160051c810160208610156121695750805b601f850160051c820191505b81811015610da057828155600101612175565b81516001600160401b038111156121a1576121a161204f565b6121b5816121af8454611f6e565b84612142565b602080601f8311600181146121ea57600084156121d25750858301515b600019600386901b1c1916600185901b178555610da0565b600085815260208120601f198616915b82811015612219578886015182559484019460019091019084016121fa565b50858210156122375787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008235607e1983360301811261225d57600080fd5b9190910192915050565b63ffffffff81811683821601908082111561228457612284612018565b5092915050565b8082018082111561061a5761061a612018565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea26469706673582212200c85974aed36f5c6f1e3ac705b4c8782107c53567524c9064fd2dffa6249351064736f6c63430008150033","sourceMap":"566:13358:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11808:668;;;;;;:::i;:::-;;:::i;:::-;;;616:25:113;;;604:2;589:18;11808:668:54;;;;;;;;9708:145;;;;;;:::i;:::-;9774:4;9793:27;;;:12;:27;;;;;:41;:55;;;9708:145;;;;1098:14:113;;1091:22;1073:41;;1061:2;1046:18;9708:145:54;933:187:113;9334:185:54;;;;;;:::i;:::-;;:::i;:::-;;10732:142;;;:::i;:::-;;;2208:6:113;2196:19;;;2178:38;;2166:2;2151:18;10732:142:54;2034:188:113;12793:398:54;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10969:82::-;11039:7;;-1:-1:-1;;;11039:7:54;;;;10969:82;;4469:1239;;;;;;:::i;:::-;;:::i;8106:395::-;;;;;;:::i;:::-;;:::i;2085:101:23:-;;;:::i;1462:85::-;1534:6;;-1:-1:-1;;;;;1534:6:23;1462:85;;;-1:-1:-1;;;;;5558:32:113;;;5540:51;;5528:2;5513:18;1462:85:23;5394:203:113;7368:372:54;;;;;;:::i;:::-;;:::i;10431:204::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5887:240::-;;;;;;:::i;:::-;;:::i;8638:540::-;;;;;;:::i;:::-;;:::i;3578:446::-;;;;;;:::i;:::-;;:::i;6131:891::-;;;;;;:::i;:::-;;:::i;10072:210::-;;;;;;:::i;:::-;;:::i;13679:243::-;;;:::i;11146:102::-;11223:20;;-1:-1:-1;;;11223:20:54;;;;11146:102;;9591:10:113;9579:23;;;9561:42;;9549:2;9534:18;11146:102:54;9417:192:113;2335:198:23;;;;;;:::i;:::-;;:::i;11366:85:54:-;11435:11;;11366:85;;621:21;;;;;-1:-1:-1;;;;;621:21:54;;;11808:668;11877:7;11892:21;11916:25;11938:2;11916:21;:25::i;:::-;11947:30;11980:27;;;:12;:27;;;;;;;;11947:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11947:60:54;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11947:60:54;;-1:-1:-1;;;;;11947:60:54;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11947:60:54;;;;;;;;;-1:-1:-1;;;11947:60:54;;;;;;;;-1:-1:-1;;;11947:60:54;;;;;;;;;;;;;;;11980:27;;-1:-1:-1;11947:30:54;;:60;;11980:27;;11947:60;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11947:60:54;;;;-1:-1:-1;;12018:25:54;;11947:60;;-1:-1:-1;12014:53:54;;-1:-1:-1;12014:53:54;12066:1;12059:8;;;;;;12014:53;12077:19;;;;:27;;12100:4;12077:27;12073:41;;12113:1;12106:8;;;;;;12073:41;12124:26;;;;-1:-1:-1;;;;;12124:31:54;;;;;:80;;;12189:15;12159:11;:26;;;-1:-1:-1;;;;;12159:45:54;;;12124:80;12120:94;;;12213:1;12206:8;;;;;;12120:94;12225:11;:19;;;:26;12255:2;12225:32;:102;;;;-1:-1:-1;12269:19:54;;;;-1:-1:-1;;;;;12301:25:54;;;12261:28;;;:::i;:::-;:66;12225:102;12221:122;;;12342:1;12335:8;;;;;;12221:122;12353:11;:19;;;:26;12383:2;12353:32;:93;;;;;12439:7;-1:-1:-1;;;;;12389:57:54;12413:11;:19;;;12405:28;;;:::i;:::-;12397:37;;12389:57;12353:93;12349:107;;;12455:1;12448:8;;;;;;12349:107;12470:1;12463:8;;;;11808:668;;;;;:::o;9334:185::-;9409:9;9404:111;9424:25;;;9404:111;;;9483:25;9490:14;;9505:1;9490:17;;;;;;;:::i;:::-;;;;;;;9483:6;:25::i;:::-;458:1:55;454:5;9404:111:54;;;;9334:185;;:::o;10732:142::-;10792:6;1355:13:23;:11;:13::i;:::-;10808:7:54::1;10806:9:::0;;10808:7:::1;::::0;10806:9:::1;::::0;-1:-1:-1;;;10806:9:54;::::1;;;;:::i;:::-;::::0;;::::1;::::0;;;::::1;;::::0;;::::1;;::::0;;::::1;::::0;;::::1;;;::::0;;;10841:7:::1;::::0;10826:23:::1;::::0;-1:-1:-1;;;10841:7:54;;::::1;::::0;;::::1;2178:38:113::0;;10826:23:54::1;::::0;2166:2:113;2151:18;10826:23:54::1;;;;;;;-1:-1:-1::0;10862:7:54::1;::::0;-1:-1:-1;;;10862:7:54;::::1;;;::::0;10732:142::o;12793:398::-;12891:16;12919:29;;;12915:63;;12957:21;;-1:-1:-1;;;12957:21:54;;;;;;;;;;;12915:63;12984:23;13024:8;-1:-1:-1;;;;;13010:30:54;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13010:30:54;;12984:56;;13051:9;13046:122;13066:19;;;13046:122;;;13131:30;13141:8;;13150:1;13141:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;13154:3;;13158:1;13154:6;;;;;;;:::i;:::-;;;;;;;13131:9;:30::i;:::-;13119:6;13126:1;13119:9;;;;;;;;:::i;:::-;;;;;;;;;;:42;458:1:55;454:5;13046:122:54;;;-1:-1:-1;13180:6:54;12793:398;-1:-1:-1;;;;;12793:398:54:o;4469:1239::-;4570:10;2973:23;3014:6;;;;;;;;;-1:-1:-1;;;;;3014:6:54;-1:-1:-1;;;;;3014:24:54;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2999:63;;-1:-1:-1;;;2999:63:54;;-1:-1:-1;;;;;5558:32:113;;;2999:63:54;;;5540:51:113;2999:55:54;;;;;;;5513:18:113;;2999:63:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2973:89;;3073:18;3068:44;;3100:12;;-1:-1:-1;;;3100:12:54;;;;;;;;;;;3068:44;4670:6:::1;::::0;:26:::1;::::0;;-1:-1:-1;;;4670:26:54;;;;4623:29:::1;::::0;-1:-1:-1;;;;;4670:6:54::1;::::0;:24:::1;::::0;:26:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:6;:26:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4708:56;::::0;-1:-1:-1;;;4708:56:54;;4736:27;::::1;4708:56;::::0;::::1;616:25:113::0;4623:74:54;;-1:-1:-1;;;;;;4708:27:54;::::1;::::0;::::1;::::0;589:18:113;;4708:56:54::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4703:91;;4773:21;;-1:-1:-1::0;;;4773:21:54::1;;;;;;;;;;;4703:91;4849:26;;::::0;::::1;:18:::0;:26:::1;:::i;:::-;:33;;4886:1;4849:38:::0;4845:81:::1;;4896:30;;-1:-1:-1::0;;;4896:30:54::1;;;;;;;;;;;4845:81;4989:34;;::::0;::::1;:18:::0;:34:::1;:::i;:::-;:41;;5034:1;4989:46:::0;4985:86:::1;;5044:27;;-1:-1:-1::0;;;5044:27:54::1;;;;;;;;;;;4985:86;5119:20;:22:::0;;-1:-1:-1;;;5119:22:54;::::1;;;::::0;:20:::1;:22;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;5217:10;5230:43;5252:20;;;;;;;;;;;5230:43;;:21;:43::i;:::-;5217:56:::0;-1:-1:-1;5286:9:54;;;::::1;::::0;:30:::1;;-1:-1:-1::0;9774:4:54;9793:27;;;:12;:27;;;;;:41;:55;5286:30:::1;5279:38;;;;:::i;:::-;5368:299;::::0;;::::1;::::0;::::1;::::0;;;;;5397:27;::::1;5368:299;::::0;;::::1;::::0;;;;-1:-1:-1;5368:299:54;;;;-1:-1:-1;;;;;5368:299:54;::::1;::::0;;;;5466:10:::1;5368:299:::0;;;;-1:-1:-1;;;;;5491:15:54::1;5368:299;::::0;;;;;;;;;;5515:33:::1;::::0;;;;;::::1;;:::i;:::-;-1:-1:-1::0;;;;;5368:299:54::1;::::0;;5556:1:::1;5368:299;::::0;::::1;::::0;;;5565:7:::1;::::0;-1:-1:-1;;;5565:7:54;::::1;;;5368:299:::0;;;;;;;;;;;;;;;;;;;;5593:26:::1;::::0;;::::1;::::0;::::1;:::i;:::-;5368:299;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;;5368:299:54;;;-1:-1:-1;5368:299:54::1;;5627:34;;::::0;::::1;:18:::0;:34:::1;:::i;:::-;5368:299;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;-1:-1:-1;5368:299:54;;;;-1:-1:-1;;5349:16:54;;;:12:::1;:16;::::0;;;;;;;;:318;;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;5349:318:54;;::::1;-1:-1:-1::0;;;;;;5349:318:54;;::::1;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;5349:318:54;;::::1;-1:-1:-1::0;;;5349:318:54::1;-1:-1:-1::0;;;;;;5349:318:54;;;;;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;;-1:-1:-1::0;;;5349:318:54::1;-1:-1:-1::0;;;;5349:318:54::1;::::0;;::::1;-1:-1:-1::0;;;5349:318:54::1;::::0;;;;-1:-1:-1;;;;5349:318:54;;::::1;-1:-1:-1::0;;;5349:318:54::1;-1:-1:-1::0;;;;;;5349:318:54;;;;;;::::1;::::0;;;;;;;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;:16;;-1:-1:-1;5349:318:54::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;5349:318:54::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;;5678:25:54::1;::::0;5700:2;;-1:-1:-1;5678:25:54::1;::::0;;;::::1;4582:1126;;2967:157:::0;4469:1239;;;:::o;8106:395::-;8264:51;;;8260:85;;8324:21;;-1:-1:-1;;;8324:21:54;;;;;;;;;;;8260:85;8356:9;8351:146;8371:25;;;8351:146;;;8430:60;8438:14;;8453:1;8438:17;;;;;;;:::i;:::-;;;;;;;8457:19;;8477:1;8457:22;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;8481:8;8430:7;:60::i;:::-;458:1:55;454:5;8351:146:54;;;;8106:395;;;;;:::o;2085:101:23:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;7368:372:54:-;7487:21;7494:13;7487:6;:21::i;:::-;7514:36;7521:18;7541:8;7514:6;:36::i;:::-;7599:20;;7556:18;;7577:43;;-1:-1:-1;;;7599:20:54;;;;7577:21;:43::i;:::-;7626:27;;;;:12;:27;;;;;;;;;:38;;:51;;;7689:46;;15909:25:113;;;15950:18;;;15943:34;;;7626:51:54;;-1:-1:-1;7689:46:54;;15882:18:113;7689:46:54;;;;;;;7481:259;7368:372;;;:::o;10431:204::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9793:27:54;;;:12;:27;;;;;;:41;10525:65;;10566:24;;-1:-1:-1;;;10566:24:54;;;;;;;;;;;10525:65;10603:27;;;;:12;:27;;;;;;;;;10596:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10596:34:54;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10596:34:54;;-1:-1:-1;;;;;10596:34:54;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10596:34:54;;;;;;;;;-1:-1:-1;;;10596:34:54;;;;;;;;-1:-1:-1;;;10596:34:54;;;;;;;;;;;;;;;;;10603:27;10596:34;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10431:204;;;:::o;5887:240::-;5995:9;5990:133;6010:31;;;5990:133;;;6075:41;6082:20;;6103:1;6082:23;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;6107:8;6075:6;:41::i;:::-;458:1:55;454:5;5990:133:54;;;;5887:240;;;:::o;8638:540::-;9774:4;9793:27;;;:12;:27;;;;;:41;8690:65;;8731:24;;-1:-1:-1;;;8731:24:54;;;;;;;;;;;8690:65;8765:27;;;;:12;:27;;;;;:35;;;-1:-1:-1;;;8765:35:54;;;;8761:64;;;8809:16;;-1:-1:-1;;;8809:16:54;;;;;;;;;;;8761:64;8849:27;;;;:12;:27;;;;;:34;;;-1:-1:-1;;;;;8849:34:54;8835:10;:48;8831:82;;8892:21;;-1:-1:-1;;;;;;8892:21:54;;;;;;;;;;;8831:82;8936:27;;;;:12;:27;;;;;:34;;;8924:47;;-1:-1:-1;;;;;8936:34:54;8924:11;:47::i;:::-;8919:86;;8980:25;;-1:-1:-1;;;8980:25:54;;;;;;;;;;;8919:86;9012:27;;;;:12;:27;;;;;;;:35;;:42;;-1:-1:-1;;;;;9112:15:54;9060:68;-1:-1:-1;;;9060:68:54;-1:-1:-1;;9060:68:54;;;;-1:-1:-1;;;9060:68:54;;;9140:33;;;;;9025:13;616:25:113;;604:2;589:18;;470:177;9140:33:54;;;;;;;;8638:540;:::o;3578:446::-;3279:19:24;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:24;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:24;1713:19:25;:23;;;3387:66:24;;-1:-1:-1;3436:12:24;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:24;;16190:2:113;3325:201:24;;;16172:21:113;16229:2;16209:18;;;16202:30;16268:34;16248:18;;;16241:62;-1:-1:-1;;;16319:18:113;;;16312:44;16373:19;;3325:201:24;;;;;;;;;3536:12;:16;;-1:-1:-1;;3536:16:24;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:24;;;;;3562:65;3662:16:54::1;:14;:16::i;:::-;-1:-1:-1::0;;;;;3689:21:54;::::1;3685:56;;3719:22;;-1:-1:-1::0;;;3719:22:54::1;;;;;;;;;;;3685:56;3747:6;:25:::0;;-1:-1:-1;;;;;;3747:25:54::1;-1:-1:-1::0;;;;;3747:25:54;::::1;::::0;;::::1;::::0;;;3783:18:::1;::::0;5540:51:113;;;3783:18:54::1;::::0;5528:2:113;5513:18;3783::54::1;;;;;;;-1:-1:-1::0;;;;;3812:77:54;::::1;:82:::0;3808:136:::1;;3911:26;;-1:-1:-1::0;;;3911:26:54::1;;;;;;;;;;;3808:136;3950:11;:26:::0;;;3987:32:::1;::::0;616:25:113;;;3987:32:54::1;::::0;604:2:113;589:18;3987:32:54::1;;;;;;;3651:14:24::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:24;;;3721:14;;-1:-1:-1;16555:36:113;;3721:14:24;;16543:2:113;16528:18;3721:14:24;;;;;;;3269:483;3578:446:54;;:::o;6131:891::-;1355:13:23;:11;:13::i;:::-;6247:9:54::1;6242:776;6262:31:::0;;::::1;6242:776;;;6371:20;:22:::0;;-1:-1:-1;;;6371:22:54;::::1;;;::::0;:20:::1;:22;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;6473:10;6486:43;6508:20;;;;;;;;;;;6486:43;;:21;:43::i;:::-;6473:56:::0;-1:-1:-1;6544:9:54;;;::::1;::::0;:30:::1;;-1:-1:-1::0;9774:4:54;9793:27;;;:12;:27;;;;;:41;:55;6544:30:::1;6537:38;;;;:::i;:::-;6630:343;;;;;;;;6651:2;6630:343;;;;6663:20;;6684:1;6663:23;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:32;6630:343:::0;;6663:32:::1;6630:343;::::0;::::1;::::0;6725:10:::1;6630:343:::0;;;;-1:-1:-1;;;;;6630:343:54;::::1;::::0;;;;-1:-1:-1;;;;;6768:15:54::1;6630:343;::::0;;;;;;6794:20;;6815:1;6794:23;;::::1;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:38;::::0;;;;;::::1;;;:::i;:::-;-1:-1:-1::0;;;;;6630:343:54::1;::::0;;6842:1:::1;6630:343;::::0;::::1;::::0;;;6853:7:::1;::::0;-1:-1:-1;;;6853:7:54;::::1;;;6630:343:::0;;;;;;;;;;6885:20;;6906:1;6885:23;;::::1;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:31;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;6630:343;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;;6630:343:54;;;-1:-1:-1;6630:343:54::1;;6926:20:::0;;6947:1;6926:23;;::::1;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:39;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;6630:343;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;-1:-1:-1;6630:343:54;;;;-1:-1:-1;;6611:16:54;;;:12:::1;:16;::::0;;;;;;;;:362;;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;6611:362:54;;::::1;-1:-1:-1::0;;;;;;6611:362:54;;::::1;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;6611:362:54;;::::1;-1:-1:-1::0;;;6611:362:54::1;-1:-1:-1::0;;;;;;6611:362:54;;;;;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;;-1:-1:-1::0;;;6611:362:54::1;-1:-1:-1::0;;;;6611:362:54::1;::::0;;::::1;-1:-1:-1::0;;;6611:362:54::1;::::0;;;;-1:-1:-1;;;;6611:362:54;;::::1;-1:-1:-1::0;;;6611:362:54::1;-1:-1:-1::0;;;;;;6611:362:54;;;;;;::::1;::::0;;;;;;;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;:16;;-1:-1:-1;6611:362:54::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;6611:362:54::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;;6986:25:54::1;::::0;7008:2;;-1:-1:-1;6986:25:54::1;::::0;;;::::1;-1:-1:-1::0;458:1:55;454:5;6242:776:54::1;;10072:210:::0;10132:4;10144:29;10191:6;;;;;;;;;-1:-1:-1;;;;;10191:6:54;-1:-1:-1;;;;;10191:24:54;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10231:46;;-1:-1:-1;;;10231:46:54;;-1:-1:-1;;;;;5558:32:113;;;10231:46:54;;;5540:51:113;10144:74:54;;-1:-1:-1;10231:36:54;;;;;;5513:18:113;;10231:46:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10224:53;10072:210;-1:-1:-1;;;10072:210:54:o;13679:243::-;13775:20;;13732:7;;;;13775:24;;-1:-1:-1;;;13775:20:54;;;;13798:1;13775:24;:::i;:::-;13747:52;;;;13805:10;13818:40;13840:17;13818:21;:40::i;:::-;13805:53;-1:-1:-1;13871:9:54;;;;;:30;;-1:-1:-1;9774:4:54;9793:27;;;:12;:27;;;;;:41;:55;13871:30;13864:38;;;;:::i;2335:198:23:-;1355:13;:11;:13::i;:::-;-1:-1:-1;;;;;2423:22:23;::::1;2415:73;;;::::0;-1:-1:-1;;;2415:73:23;;16981:2:113;2415:73:23::1;::::0;::::1;16963:21:113::0;17020:2;17000:18;;;16993:30;17059:34;17039:18;;;17032:62;-1:-1:-1;;;17110:18:113;;;17103:36;17156:19;;2415:73:23::1;16779:402:113::0;2415:73:23::1;2498:28;2517:8;2498:18;:28::i;:::-;2335:198:::0;:::o;13385:173:54:-;13451:7;13549:2;13535:11;;:16;;;;:::i;:::-;13524:28;;;;;;616:25:113;;604:2;589:18;;470:177;13524:28:54;;;;;;;;;;;;;13516:37;;;:::i;1620:130:23:-;1534:6;;-1:-1:-1;;;;;1534:6:23;965:10:26;1683:23:23;1675:68;;;;-1:-1:-1;;;1675:68:23;;17518:2:113;1675:68:23;;;17500:21:113;;;17537:18;;;17530:30;17596:34;17576:18;;;17569:62;17648:18;;1675:68:23;17316:356:113;2687:187:23;2779:6;;;-1:-1:-1;;;;;2795:17:23;;;-1:-1:-1;;;;;;2795:17:23;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;1024:95::-;5374:13:24;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:24;;;;;;;:::i;:::-;1086:26:23::1;5374:13:24::0;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:24;;;;;;;:::i;:::-;1197:32:23::1;965:10:26::0;1197:18:23::1;:32::i;14:131:113:-:0;-1:-1:-1;;;;;89:31:113;;79:42;;69:70;;135:1;132;125:12;150:315;218:6;226;279:2;267:9;258:7;254:23;250:32;247:52;;;295:1;292;285:12;247:52;334:9;321:23;353:31;378:5;353:31;:::i;:::-;403:5;455:2;440:18;;;;427:32;;-1:-1:-1;;;150:315:113:o;652:180::-;711:6;764:2;752:9;743:7;739:23;735:32;732:52;;;780:1;777;770:12;732:52;-1:-1:-1;803:23:113;;652:180;-1:-1:-1;652:180:113:o;1125:367::-;1188:8;1198:6;1252:3;1245:4;1237:6;1233:17;1229:27;1219:55;;1270:1;1267;1260:12;1219:55;-1:-1:-1;1293:20:113;;-1:-1:-1;;;;;1325:30:113;;1322:50;;;1368:1;1365;1358:12;1322:50;1405:4;1397:6;1393:17;1381:29;;1465:3;1458:4;1448:6;1445:1;1441:14;1433:6;1429:27;1425:38;1422:47;1419:67;;;1482:1;1479;1472:12;1419:67;1125:367;;;;;:::o;1497:437::-;1583:6;1591;1644:2;1632:9;1623:7;1619:23;1615:32;1612:52;;;1660:1;1657;1650:12;1612:52;1700:9;1687:23;-1:-1:-1;;;;;1725:6:113;1722:30;1719:50;;;1765:1;1762;1755:12;1719:50;1804:70;1866:7;1857:6;1846:9;1842:22;1804:70;:::i;:::-;1893:8;;1778:96;;-1:-1:-1;1497:437:113;-1:-1:-1;;;;1497:437:113:o;2227:773::-;2349:6;2357;2365;2373;2426:2;2414:9;2405:7;2401:23;2397:32;2394:52;;;2442:1;2439;2432:12;2394:52;2482:9;2469:23;-1:-1:-1;;;;;2552:2:113;2544:6;2541:14;2538:34;;;2568:1;2565;2558:12;2538:34;2607:70;2669:7;2660:6;2649:9;2645:22;2607:70;:::i;:::-;2696:8;;-1:-1:-1;2581:96:113;-1:-1:-1;2784:2:113;2769:18;;2756:32;;-1:-1:-1;2800:16:113;;;2797:36;;;2829:1;2826;2819:12;2797:36;;2868:72;2932:7;2921:8;2910:9;2906:24;2868:72;:::i;:::-;2227:773;;;;-1:-1:-1;2959:8:113;-1:-1:-1;;;;2227:773:113:o;3005:632::-;3176:2;3228:21;;;3298:13;;3201:18;;;3320:22;;;3147:4;;3176:2;3399:15;;;;3373:2;3358:18;;;3147:4;3442:169;3456:6;3453:1;3450:13;3442:169;;;3517:13;;3505:26;;3586:15;;;;3551:12;;;;3478:1;3471:9;3442:169;;;-1:-1:-1;3628:3:113;;3005:632;-1:-1:-1;;;;;;3005:632:113:o;3642:167::-;3713:5;3758:3;3749:6;3744:3;3740:16;3736:26;3733:46;;;3775:1;3772;3765:12;3733:46;-1:-1:-1;3797:6:113;3642:167;-1:-1:-1;3642:167:113:o;3814:514::-;3921:6;3929;3982:2;3970:9;3961:7;3957:23;3953:32;3950:52;;;3998:1;3995;3988:12;3950:52;4038:9;4025:23;-1:-1:-1;;;;;4063:6:113;4060:30;4057:50;;;4103:1;4100;4093:12;4057:50;4126:78;4196:7;4187:6;4176:9;4172:22;4126:78;:::i;:::-;4116:88;;;4254:2;4243:9;4239:18;4226:32;4267:31;4292:5;4267:31;:::i;:::-;4317:5;4307:15;;;3814:514;;;;;:::o;4333:947::-;4503:6;4511;4519;4527;4535;4588:2;4576:9;4567:7;4563:23;4559:32;4556:52;;;4604:1;4601;4594:12;4556:52;4644:9;4631:23;-1:-1:-1;;;;;4714:2:113;4706:6;4703:14;4700:34;;;4730:1;4727;4720:12;4700:34;4769:70;4831:7;4822:6;4811:9;4807:22;4769:70;:::i;:::-;4858:8;;-1:-1:-1;4743:96:113;-1:-1:-1;4946:2:113;4931:18;;4918:32;;-1:-1:-1;4962:16:113;;;4959:36;;;4991:1;4988;4981:12;4959:36;;5030:72;5094:7;5083:8;5072:9;5068:24;5030:72;:::i;:::-;5121:8;;-1:-1:-1;5004:98:113;-1:-1:-1;;5206:2:113;5191:18;;5178:32;5219:31;5178:32;5219:31;:::i;:::-;5269:5;5259:15;;;4333:947;;;;;;;;:::o;5602:582::-;5718:6;5726;5734;5787:2;5775:9;5766:7;5762:23;5758:32;5755:52;;;5803:1;5800;5793:12;5755:52;5839:9;5826:23;5816:33;;5900:2;5889:9;5885:18;5872:32;-1:-1:-1;;;;;5919:6:113;5916:30;5913:50;;;5959:1;5956;5949:12;5913:50;5982:78;6052:7;6043:6;6032:9;6028:22;5982:78;:::i;:::-;5972:88;;;6110:2;6099:9;6095:18;6082:32;6123:31;6148:5;6123:31;:::i;:::-;6173:5;6163:15;;;5602:582;;;;;:::o;6296:422::-;6337:3;6375:5;6369:12;6402:6;6397:3;6390:19;6427:1;6437:162;6451:6;6448:1;6445:13;6437:162;;;6513:4;6569:13;;;6565:22;;6559:29;6541:11;;;6537:20;;6530:59;6466:12;6437:162;;;6441:3;6644:1;6637:4;6628:6;6623:3;6619:16;6615:27;6608:38;6707:4;6700:2;6696:7;6691:2;6683:6;6679:15;6675:29;6670:3;6666:39;6662:50;6655:57;;;6296:422;;;;:::o;6723:1639::-;6912:2;6901:9;6894:21;6957:6;6951:13;6946:2;6935:9;6931:18;6924:41;7019:2;7011:6;7007:15;7001:22;6996:2;6985:9;6981:18;6974:50;7078:2;7070:6;7066:15;7060:22;7055:2;7044:9;7040:18;7033:50;6875:4;7130:2;7122:6;7118:15;7112:22;7143:53;7191:3;7180:9;7176:19;7162:12;-1:-1:-1;;;;;5351:31:113;5339:44;;5285:104;7143:53;-1:-1:-1;7245:3:113;7233:16;;7227:23;-1:-1:-1;;;;;5351:31:113;;7309:3;7294:19;;5339:44;-1:-1:-1;7363:3:113;7351:16;;7345:23;-1:-1:-1;;;;;6254:30:113;;7426:3;7411:19;;6242:43;-1:-1:-1;7480:3:113;7468:16;;7462:23;-1:-1:-1;;;;;6254:30:113;;7543:3;7528:19;;6242:43;7494:54;7597:3;7589:6;7585:16;7579:23;7621:3;7633:53;7682:2;7671:9;7667:18;7651:14;-1:-1:-1;;;;;6254:30:113;6242:43;;6189:102;7633:53;7723:15;;7717:22;;-1:-1:-1;7758:3:113;7770:53;7804:18;;;7717:22;2015:6;2004:18;1992:31;;1939:90;7770:53;7860:15;;7854:22;;-1:-1:-1;7895:3:113;7907:51;7939:18;;;7854:22;907:13;900:21;888:34;;837:91;7907:51;8007:2;7999:6;7995:15;7989:22;7967:44;;;8030:6;8055:3;8094:2;8089;8078:9;8074:18;8067:30;8120:53;8168:3;8157:9;8153:19;8137:14;8120:53;:::i;:::-;8210:15;;;8204:22;8266;;;-1:-1:-1;;8262:36:113;8242:18;;;8235:64;8106:67;;-1:-1:-1;8316:40:113;8106:67;8204:22;8316:40;:::i;:::-;8308:48;6723:1639;-1:-1:-1;;;;;;6723:1639:113:o;8367:611::-;8501:6;8509;8517;8570:2;8558:9;8549:7;8545:23;8541:32;8538:52;;;8586:1;8583;8576:12;8538:52;8626:9;8613:23;-1:-1:-1;;;;;8651:6:113;8648:30;8645:50;;;8691:1;8688;8681:12;8645:50;8730:70;8792:7;8783:6;8772:9;8768:22;8730:70;:::i;:::-;8819:8;;-1:-1:-1;8704:96:113;-1:-1:-1;;8904:2:113;8889:18;;8876:32;8917:31;8876:32;8917:31;:::i;8983:247::-;9042:6;9095:2;9083:9;9074:7;9070:23;9066:32;9063:52;;;9111:1;9108;9101:12;9063:52;9150:9;9137:23;9169:31;9194:5;9169:31;:::i;9839:380::-;9918:1;9914:12;;;;9961;;;9982:61;;10036:4;10028:6;10024:17;10014:27;;9982:61;10089:2;10081:6;10078:14;10058:18;10055:38;10052:161;;10135:10;10130:3;10126:20;10123:1;10116:31;10170:4;10167:1;10160:15;10198:4;10195:1;10188:15;10224:297;10342:12;;10389:4;10378:16;;;10372:23;;10342:12;10407:16;;10404:111;;;-1:-1:-1;;10481:4:113;10477:17;;;;10474:1;10470:25;10466:38;10455:50;;10224:297;-1:-1:-1;10224:297:113:o;10526:375::-;10644:12;;10692:4;10681:16;;10675:23;-1:-1:-1;;10766:11:113;;;;10644:12;10675:23;10800:2;10789:14;;10786:109;;;10882:2;10876;10866:6;10862:2;10858:15;10855:1;10851:23;10847:32;10843:2;10839:41;10835:50;10826:59;;10786:109;;;;10526:375;;;:::o;10906:127::-;10967:10;10962:3;10958:20;10955:1;10948:31;10998:4;10995:1;10988:15;11022:4;11019:1;11012:15;11038:127;11099:10;11094:3;11090:20;11087:1;11080:31;11130:4;11127:1;11120:15;11154:4;11151:1;11144:15;11170:197;11208:3;11236:6;11277:2;11270:5;11266:14;11304:2;11295:7;11292:15;11289:41;;11310:18;;:::i;:::-;11359:1;11346:15;;11170:197;-1:-1:-1;;;11170:197:113:o;11372:127::-;11433:10;11428:3;11424:20;11421:1;11414:31;11464:4;11461:1;11454:15;11488:4;11485:1;11478:15;11504:251;11574:6;11627:2;11615:9;11606:7;11602:23;11598:32;11595:52;;;11643:1;11640;11633:12;11595:52;11675:9;11669:16;11694:31;11719:5;11694:31;:::i;11760:277::-;11827:6;11880:2;11868:9;11859:7;11855:23;11851:32;11848:52;;;11896:1;11893;11886:12;11848:52;11928:9;11922:16;11981:5;11974:13;11967:21;11960:5;11957:32;11947:60;;12003:1;12000;11993:12;12042:521;12119:4;12125:6;12185:11;12172:25;12279:2;12275:7;12264:8;12248:14;12244:29;12240:43;12220:18;12216:68;12206:96;;12298:1;12295;12288:12;12206:96;12325:33;;12377:20;;;-1:-1:-1;;;;;;12409:30:113;;12406:50;;;12452:1;12449;12442:12;12406:50;12485:4;12473:17;;-1:-1:-1;12516:14:113;12512:27;;;12502:38;;12499:58;;;12553:1;12550;12543:12;12568:201;12606:3;12634:10;12679:2;12672:5;12668:14;12706:2;12697:7;12694:15;12691:41;;12712:18;;:::i;12774:127::-;12835:10;12830:3;12826:20;12823:1;12816:31;12866:4;12863:1;12856:15;12890:4;12887:1;12880:15;12906:284;12964:6;13017:2;13005:9;12996:7;12992:23;12988:32;12985:52;;;13033:1;13030;13023:12;12985:52;13072:9;13059:23;-1:-1:-1;;;;;13115:5:113;13111:30;13104:5;13101:41;13091:69;;13156:1;13153;13146:12;13320:544;13421:2;13416:3;13413:11;13410:448;;;13457:1;13482:5;13478:2;13471:17;13527:4;13523:2;13513:19;13597:2;13585:10;13581:19;13578:1;13574:27;13568:4;13564:38;13633:4;13621:10;13618:20;13615:47;;;-1:-1:-1;13656:4:113;13615:47;13711:2;13706:3;13702:12;13699:1;13695:20;13689:4;13685:31;13675:41;;13766:82;13784:2;13777:5;13774:13;13766:82;;;13829:17;;;13810:1;13799:13;13766:82;;14040:1348;14164:3;14158:10;-1:-1:-1;;;;;14183:6:113;14180:30;14177:56;;;14213:18;;:::i;:::-;14242:96;14331:6;14291:38;14323:4;14317:11;14291:38;:::i;:::-;14285:4;14242:96;:::i;:::-;14393:4;;14457:2;14446:14;;14474:1;14469:662;;;;15175:1;15192:6;15189:89;;;-1:-1:-1;15244:19:113;;;15238:26;15189:89;-1:-1:-1;;13997:1:113;13993:11;;;13989:24;13985:29;13975:40;14021:1;14017:11;;;13972:57;15291:81;;14439:943;;14469:662;13267:1;13260:14;;;13304:4;13291:18;;-1:-1:-1;;14505:20:113;;;14622:236;14636:7;14633:1;14630:14;14622:236;;;14725:19;;;14719:26;14704:42;;14817:27;;;;14785:1;14773:14;;;;14652:19;;14622:236;;;14626:3;14886:6;14877:7;14874:19;14871:201;;;14947:19;;;14941:26;-1:-1:-1;;15030:1:113;15026:14;;;15042:3;15022:24;15018:37;15014:42;14999:58;14984:74;;14871:201;-1:-1:-1;;;;;15118:1:113;15102:14;;;15098:22;15085:36;;-1:-1:-1;14040:1348:113:o;15393:337::-;15498:4;15556:11;15543:25;15650:3;15646:8;15635;15619:14;15615:29;15611:44;15591:18;15587:69;15577:97;;15670:1;15667;15660:12;15577:97;15691:33;;;;;15393:337;-1:-1:-1;;15393:337:113:o;16602:172::-;16669:10;16699;;;16711;;;16695:27;;16734:11;;;16731:37;;;16748:18;;:::i;:::-;16731:37;16602:172;;;;:::o;17186:125::-;17251:9;;;17272:10;;;17269:36;;;17285:18;;:::i;17677:407::-;17879:2;17861:21;;;17918:2;17898:18;;;17891:30;17957:34;17952:2;17937:18;;17930:62;-1:-1:-1;;;18023:2:113;18008:18;;18001:41;18074:3;18059:19;;17677:407::o","linkReferences":{}},"methodIdentifiers":{"attest((bytes32,uint64,bytes,bytes),address)":"62fa3d45","balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","bulkAttest((bytes32,uint64,bytes,bytes)[],address)":"a8e2812d","bulkReplace(bytes32[],(bytes32,uint64,bytes,bytes)[],address)":"6ec4d4cb","bulkRevoke(bytes32[])":"4ada8076","getAttestation(bytes32)":"a3112a64","getAttestationIdCounter()":"f20c1416","getChainPrefix()":"f541295c","getNextAttestationId()":"eed95611","getVersionNumber()":"54255be0","incrementVersionNumber()":"4cbe11cb","initialize(address,uint256)":"cd6dc687","isRegistered(bytes32)":"27258b22","isRevocable(address)":"d46f6a2c","massImport((bytes32,uint64,bytes,bytes)[],address)":"d0fc9f83","owner()":"8da5cb5b","renounceOwnership()":"715018a6","replace(bytes32,(bytes32,uint64,bytes,bytes),address)":"8ffa736b","revoke(bytes32)":"b75c7dc6","router()":"f887ea40","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyRevoked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ArrayLengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AttestationDataFieldEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AttestationNotAttested\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AttestationNotRevocable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AttestationSubjectFieldEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ChainPrefixFormatInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyAttestingPortal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyPortal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RouterAddressInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SchemaNotRegistered\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"attestationId\",\"type\":\"bytes32\"}],\"name\":\"AttestationRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"attestationId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"replacedBy\",\"type\":\"bytes32\"}],\"name\":\"AttestationReplaced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"attestationId\",\"type\":\"bytes32\"}],\"name\":\"AttestationRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"chainPrefix\",\"type\":\"uint256\"}],\"name\":\"ChainPrefixUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"}],\"name\":\"RouterSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"version\",\"type\":\"uint16\"}],\"name\":\"VersionUpdated\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schemaId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"expirationDate\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"subject\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"attestationData\",\"type\":\"bytes\"}],\"internalType\":\"struct AttestationPayload\",\"name\":\"attestationPayload\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"}],\"name\":\"attest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schemaId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"expirationDate\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"subject\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"attestationData\",\"type\":\"bytes\"}],\"internalType\":\"struct AttestationPayload[]\",\"name\":\"attestationsPayloads\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"}],\"name\":\"bulkAttest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"attestationIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schemaId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"expirationDate\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"subject\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"attestationData\",\"type\":\"bytes\"}],\"internalType\":\"struct AttestationPayload[]\",\"name\":\"attestationPayloads\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"}],\"name\":\"bulkReplace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"attestationIds\",\"type\":\"bytes32[]\"}],\"name\":\"bulkRevoke\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"attestationId\",\"type\":\"bytes32\"}],\"name\":\"getAttestation\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"attestationId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schemaId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"replacedBy\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"portal\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"attestedDate\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationDate\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationDate\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"version\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"revoked\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"subject\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"attestationData\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAttestationIdCounter\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainPrefix\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextAttestationId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVersionNumber\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"incrementVersionNumber\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_chainPrefix\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"attestationId\",\"type\":\"bytes32\"}],\"name\":\"isRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"portalId\",\"type\":\"address\"}],\"name\":\"isRevocable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schemaId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"expirationDate\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"subject\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"attestationData\",\"type\":\"bytes\"}],\"internalType\":\"struct AttestationPayload[]\",\"name\":\"attestationsPayloads\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"portal\",\"type\":\"address\"}],\"name\":\"massImport\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"attestationId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schemaId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"expirationDate\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"subject\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"attestationData\",\"type\":\"bytes\"}],\"internalType\":\"struct AttestationPayload\",\"name\":\"attestationPayload\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"}],\"name\":\"replace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"attestationId\",\"type\":\"bytes32\"}],\"name\":\"revoke\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"contract IRouter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Consensys\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"attest((bytes32,uint64,bytes,bytes),address)\":{\"details\":\"This function can only be called by a registered Portal.While it might not align with typical business rules, it is technically      possible to register expired attestations.\",\"params\":{\"attestationPayload\":\"The payload used to create and register the attestation.\",\"attester\":\"The address of the account issuing the attestation.\"}},\"balanceOf(address,uint256)\":{\"details\":\"Only considers non-revoked, non-replaced and non-expired attestations\",\"params\":{\"account\":\"The address of the token holder\",\"id\":\"ID of the attestation\"},\"returns\":{\"_0\":\"The _owner's balance of the attestations on a given attestation ID\"}},\"balanceOfBatch(address[],uint256[])\":{\"params\":{\"accounts\":\"The addresses of the attestation holders\",\"ids\":\"ID of the attestations\"},\"returns\":{\"_0\":\"The _owner's balance of the attestation for a given address (i.e. balance for each (owner, id) pair)\"}},\"bulkAttest((bytes32,uint64,bytes,bytes)[],address)\":{\"params\":{\"attestationsPayloads\":\"the attestations payloads to create attestations and register them\"}},\"bulkReplace(bytes32[],(bytes32,uint64,bytes,bytes)[],address)\":{\"params\":{\"attestationIds\":\"the list of IDs of the attestations to replace\",\"attestationPayloads\":\"the list of attestation payloads to create the new attestations and register them\",\"attester\":\"the account address issuing the attestation\"}},\"bulkRevoke(bytes32[])\":{\"params\":{\"attestationIds\":\"the IDs of the attestations to revoke\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getAttestation(bytes32)\":{\"params\":{\"attestationId\":\"the attestation identifier\"},\"returns\":{\"_0\":\"the attestation\"}},\"getAttestationIdCounter()\":{\"returns\":{\"_0\":\"The attestation counter\"}},\"getChainPrefix()\":{\"returns\":{\"_0\":\"The chain prefix\"}},\"getNextAttestationId()\":{\"returns\":{\"_0\":\"The next attestation ID\"}},\"getVersionNumber()\":{\"returns\":{\"_0\":\"The current version number\"}},\"incrementVersionNumber()\":{\"returns\":{\"_0\":\"The new version number\"}},\"initialize(address,uint256)\":{\"details\":\"The `_chainPrefix` must be more than 0x0001000000000000000000000000000000000000000000000000000000000000      and the last 60 characters must be 0\",\"params\":{\"_chainPrefix\":\"defines the chain prefix to be used in the attestation ID\",\"_router\":\"the address of the Router contract\"}},\"isRegistered(bytes32)\":{\"params\":{\"attestationId\":\"the attestation identifier\"},\"returns\":{\"_0\":\"true if the attestation is registered, false otherwise\"}},\"isRevocable(address)\":{\"params\":{\"portalId\":\"the portal address (ID)\"},\"returns\":{\"_0\":\"true if the attestations issued by this portal are revocable, false otherwise\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"replace(bytes32,(bytes32,uint64,bytes,bytes),address)\":{\"params\":{\"attestationId\":\"the ID of the attestation to replace\",\"attestationPayload\":\"the attestation payload to create the new attestation and register it\",\"attester\":\"the account address issuing the attestation\"}},\"revoke(bytes32)\":{\"params\":{\"attestationId\":\"the ID of the attestation to revoke\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"Attestation Registry\",\"version\":1},\"userdoc\":{\"errors\":{\"AlreadyRevoked()\":[{\"notice\":\"Error thrown when an attempt is made to revoke an attestation that was already revoked\"}],\"ArrayLengthMismatch()\":[{\"notice\":\"Error thrown when an attempt is made to bulk replace with mismatched parameter array lengths\"}],\"AttestationDataFieldEmpty()\":[{\"notice\":\"Error thrown when an attestation data field is empty\"}],\"AttestationNotAttested()\":[{\"notice\":\"Error thrown when an attestation is not registered in the AttestationRegistry\"}],\"AttestationNotRevocable()\":[{\"notice\":\"Error thrown when an attempt is made to revoke an attestation based on a non-revocable schema\"}],\"AttestationSubjectFieldEmpty()\":[{\"notice\":\"Error thrown when an attestation subject is empty\"}],\"ChainPrefixFormatInvalid()\":[{\"notice\":\"Error thrown when the chain prefix format is invalid\"}],\"OnlyAttestingPortal()\":[{\"notice\":\"Error thrown when an attempt is made to revoke an attestation by an entity other than the attesting portal\"}],\"OnlyPortal()\":[{\"notice\":\"Error thrown when a non-portal tries to call a method that can only be called by a portal\"}],\"RouterAddressInvalid()\":[{\"notice\":\"Error thrown when the router address is the zero address\"}],\"SchemaNotRegistered()\":[{\"notice\":\"Error thrown when a schema id is not registered\"}]},\"events\":{\"AttestationRegistered(bytes32)\":{\"notice\":\"Event emitted when an attestation is registered\"},\"AttestationReplaced(bytes32,bytes32)\":{\"notice\":\"Event emitted when an attestation is replaced\"},\"AttestationRevoked(bytes32)\":{\"notice\":\"Event emitted when an attestation is revoked\"},\"ChainPrefixUpdated(uint256)\":{\"notice\":\"Event emitted when the chain prefix is set\"},\"RouterSet(address)\":{\"notice\":\"Event emitted when the router address is set\"},\"VersionUpdated(uint16)\":{\"notice\":\"Event emitted when the version number is incremented\"}},\"kind\":\"user\",\"methods\":{\"attest((bytes32,uint64,bytes,bytes),address)\":{\"notice\":\"Registers an attestation in the AttestationRegistry.\"},\"balanceOf(address,uint256)\":{\"notice\":\"Checks if an address owns a valid attestation following the ERC-1155 interface\"},\"balanceOfBatch(address[],uint256[])\":{\"notice\":\"Get the balance of multiple account/attestation pairs following ERC-1155\"},\"bulkAttest((bytes32,uint64,bytes,bytes)[],address)\":{\"notice\":\"Registers attestations to the AttestationRegistry\"},\"bulkReplace(bytes32[],(bytes32,uint64,bytes,bytes)[],address)\":{\"notice\":\"Replaces attestations for given identifiers and replaces them with new attestations\"},\"bulkRevoke(bytes32[])\":{\"notice\":\"Bulk revokes a list of attestations for the given identifiers\"},\"getAttestation(bytes32)\":{\"notice\":\"Gets an attestation by its identifier\"},\"getAttestationIdCounter()\":{\"notice\":\"Gets the attestation counter\"},\"getChainPrefix()\":{\"notice\":\"Gets the chain prefix used to generate the attestation IDs\"},\"getNextAttestationId()\":{\"notice\":\"Get the next attestation ID including chain identifier\"},\"getVersionNumber()\":{\"notice\":\"Gets the registry version\"},\"incrementVersionNumber()\":{\"notice\":\"Increments the registry version\"},\"initialize(address,uint256)\":{\"notice\":\"Contract initialization\"},\"isRegistered(bytes32)\":{\"notice\":\"Checks if an attestation is registered\"},\"isRevocable(address)\":{\"notice\":\"Checks whether a portal issues revocable attestations\"},\"replace(bytes32,(bytes32,uint64,bytes,bytes),address)\":{\"notice\":\"Replaces an attestation for the given identifier and replaces it with a new attestation\"},\"revoke(bytes32)\":{\"notice\":\"Revokes an attestation for a given identifier\"}},\"notice\":\"This contract stores a registry of all attestations\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/AttestationRegistry.sol\":\"AttestationRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c\",\"dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165CheckerUpgradeable.sol\":{\"keccak256\":\"0x94edef8687cf1335a114f7e7267fa92cb0d9e61afde8d62589aceede6c245caf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9dbcc182503f671c6bb7e2c24fe5f13e4c7604389d6cfccd074bc1d9fa7b86df\",\"dweb:/ipfs/QmdioHDNmTsJx9xMcwBvA7QJhC4MzTmDmWHiWsZpbETLXx\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"src/AttestationRegistry.sol\":{\"keccak256\":\"0x3c56f7eee3ac86a0cae61be91ede7bcbf5c8af10805ed52224f324a44a55f98b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73409f2983c864ded4be63a649c9dbd1d25928e670784cd9b6b2173e3246c23\",\"dweb:/ipfs/QmXixGjYaZzua1ucUHoBwNtN9mXbBAiB4Sg91uxiX443A2\"]},\"src/Common.sol\":{\"keccak256\":\"0x07627815aee6d7b83ae82aef10f45b54ac0be15cbbbb249300cc097475475c24\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72b82fc8baf2256b13b0b36f343328bfcd7d979304c47eca5731237d744fd094\",\"dweb:/ipfs/QmQW23C75qvgR5H2cUgCJ5zZDwHCDLBbESGExwVCmJjL4k\"]},\"src/DefaultPortalV2.sol\":{\"keccak256\":\"0x7c18ba58fb72b1831c834650860b748bb6e8f7b85344184fea2ed8d6bb76eba8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75bba0ba5980cf98d939f505925af829770a52c3268ac30a5a2157632f839522\",\"dweb:/ipfs/QmPMqALZpYKUbEeAsSwEzBB9uAnSxU7JLkmTL6P8AL5t1W\"]},\"src/ModuleRegistry.sol\":{\"keccak256\":\"0xe6f4dd301a87493d825b7b228f23fcc0dc061346525c3a3ef72acd12069a5ee0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0bdef98113aa85895e6f61e27e0b946715d1d1e8d6c6a96b16e6d46025e7af88\",\"dweb:/ipfs/QmRvq2P4PmUFBnh6KSB35gryaTrJD47CNiy69yqpMCwcZx\"]},\"src/PortalRegistry.sol\":{\"keccak256\":\"0xe004c6d29a99520af021af80fcba3d1a4ec31ab836bb13e2ba3d668cedb14fb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c61d5aab8db5cef8d3d77cb23aa8e4867abf32b434281c2405c6f46de586f8ba\",\"dweb:/ipfs/QmZZdGdskovJPnusDmZ9Rc6rWVeLibEhNF4MTFpFm87xmx\"]},\"src/SchemaRegistry.sol\":{\"keccak256\":\"0x6cf8eb42ef410d84e77214f95333e598a6c154e3b7a4e7160b06e051862c168c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68d561d0d3c633704f902350c8f2a842a5c19300ae35b1fbeb2cf3d8ee58aaae\",\"dweb:/ipfs/QmcZ3ofnBCmkmb8FZxWc9f2oP5L2tYweaaA6q5amA7uGio\"]},\"src/abstracts/AbstractModule.sol\":{\"keccak256\":\"0xae791069d8bd3f943d06975383ae0d0231498a8bd70d0ed7c8a815a4fddc9cf8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e32efbdee61914e3b91b29aabd5ddbc202546aa910ec005f7ee63a9f57603395\",\"dweb:/ipfs/QmaWYQVQSD5mo1ujPD3rm251UkWcBDcRm8y7i7QXurE2Ky\"]},\"src/abstracts/AbstractModuleV2.sol\":{\"keccak256\":\"0x87a3060cac439296ef19c719a6abe3776c59ab858c9d935a07e0c70c57387ac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2208b4e53226d1a08ca45ccda9686abc7d339aee8b3554823585fb3acc0c1479\",\"dweb:/ipfs/QmdFMkJ49tBRUCT5oVMFGhub9ZFWL6wzv3jiW35XsLbuYi\"]},\"src/abstracts/AbstractPortalV2.sol\":{\"keccak256\":\"0xef4d0ec62960936027d0c9271bfc76d0b913ea36dd88ef077f676c62f06ffe72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8be53b100c84b36310ea7b9c22628052f0ee258b6c1cef15d0572a652e8c2e2\",\"dweb:/ipfs/QmSE98AGeEBQk3R66wpRmkePCR8BCT6ruk3zLZTzuf2oak\"]},\"src/interfaces/IPortal.sol\":{\"keccak256\":\"0xbae2383850a8835e1202c58d5dd4c0bca4e9b631cd85efe6c4f5c62cf769c5e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8687bf6ce8049ff7d4eeadef51e55cdab58e1ec7a9fb93a2037ae43f426420a8\",\"dweb:/ipfs/QmTqX5BfttfbrJxb9yyCxFpqAix9AxAWzGLodFYHhjfrY4\"]},\"src/interfaces/IRouter.sol\":{\"keccak256\":\"0x28599dbf7e8d3903c57c0df03a6f4ee26e731452c79755525c34a1b18ddd4d9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://122078d4c05dc8a8205d766017e3880665e44e726b82aa710347e95989d338a3\",\"dweb:/ipfs/QmSToNkFkzs8cJ2xQeQqsrUBC73tDXjGirGafK6ZkfXTm2\"]},\"src/types/Enums.sol\":{\"keccak256\":\"0x6c68eecf740a3f51211c954a99b43ebc2186e7b3e79b6c984937ad5c983e45a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c185006a0fde12fd59733b01578bbeefc2c0349c5f7899cc0652d3e3dd1a142\",\"dweb:/ipfs/QmUsw5sEwBDM4skEaHHdRovDXB12F47pQtUjE4Dq2SBu3t\"]},\"src/types/Structs.sol\":{\"keccak256\":\"0x8e3d41554d3c35181c36e019deddebfa6cb52a3f7b53c73c197fa2a87184ed2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc65fc7d7491ad0a26c8dd5ca1a1bb54d935ad6b59d99463c781446d57013f2a\",\"dweb:/ipfs/QmTgtxg6oNmf6QnbEcNdQosFutUYs7tkZSeN9KVpKGtWWK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.21+commit.d9974bed"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyRevoked"},{"inputs":[],"type":"error","name":"ArrayLengthMismatch"},{"inputs":[],"type":"error","name":"AttestationDataFieldEmpty"},{"inputs":[],"type":"error","name":"AttestationNotAttested"},{"inputs":[],"type":"error","name":"AttestationNotRevocable"},{"inputs":[],"type":"error","name":"AttestationSubjectFieldEmpty"},{"inputs":[],"type":"error","name":"ChainPrefixFormatInvalid"},{"inputs":[],"type":"error","name":"OnlyAttestingPortal"},{"inputs":[],"type":"error","name":"OnlyPortal"},{"inputs":[],"type":"error","name":"RouterAddressInvalid"},{"inputs":[],"type":"error","name":"SchemaNotRegistered"},{"inputs":[{"internalType":"bytes32","name":"attestationId","type":"bytes32","indexed":true}],"type":"event","name":"AttestationRegistered","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"attestationId","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"replacedBy","type":"bytes32","indexed":false}],"type":"event","name":"AttestationReplaced","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"attestationId","type":"bytes32","indexed":false}],"type":"event","name":"AttestationRevoked","anonymous":false},{"inputs":[{"internalType":"uint256","name":"chainPrefix","type":"uint256","indexed":false}],"type":"event","name":"ChainPrefixUpdated","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"router","type":"address","indexed":false}],"type":"event","name":"RouterSet","anonymous":false},{"inputs":[{"internalType":"uint16","name":"version","type":"uint16","indexed":false}],"type":"event","name":"VersionUpdated","anonymous":false},{"inputs":[{"internalType":"struct AttestationPayload","name":"attestationPayload","type":"tuple","components":[{"internalType":"bytes32","name":"schemaId","type":"bytes32"},{"internalType":"uint64","name":"expirationDate","type":"uint64"},{"internalType":"bytes","name":"subject","type":"bytes"},{"internalType":"bytes","name":"attestationData","type":"bytes"}]},{"internalType":"address","name":"attester","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"attest"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"struct AttestationPayload[]","name":"attestationsPayloads","type":"tuple[]","components":[{"internalType":"bytes32","name":"schemaId","type":"bytes32"},{"internalType":"uint64","name":"expirationDate","type":"uint64"},{"internalType":"bytes","name":"subject","type":"bytes"},{"internalType":"bytes","name":"attestationData","type":"bytes"}]},{"internalType":"address","name":"attester","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bulkAttest"},{"inputs":[{"internalType":"bytes32[]","name":"attestationIds","type":"bytes32[]"},{"internalType":"struct AttestationPayload[]","name":"attestationPayloads","type":"tuple[]","components":[{"internalType":"bytes32","name":"schemaId","type":"bytes32"},{"internalType":"uint64","name":"expirationDate","type":"uint64"},{"internalType":"bytes","name":"subject","type":"bytes"},{"internalType":"bytes","name":"attestationData","type":"bytes"}]},{"internalType":"address","name":"attester","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"bulkReplace"},{"inputs":[{"internalType":"bytes32[]","name":"attestationIds","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"bulkRevoke"},{"inputs":[{"internalType":"bytes32","name":"attestationId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getAttestation","outputs":[{"internalType":"struct Attestation","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"attestationId","type":"bytes32"},{"internalType":"bytes32","name":"schemaId","type":"bytes32"},{"internalType":"bytes32","name":"replacedBy","type":"bytes32"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"address","name":"portal","type":"address"},{"internalType":"uint64","name":"attestedDate","type":"uint64"},{"internalType":"uint64","name":"expirationDate","type":"uint64"},{"internalType":"uint64","name":"revocationDate","type":"uint64"},{"internalType":"uint16","name":"version","type":"uint16"},{"internalType":"bool","name":"revoked","type":"bool"},{"internalType":"bytes","name":"subject","type":"bytes"},{"internalType":"bytes","name":"attestationData","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAttestationIdCounter","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainPrefix","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getNextAttestationId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getVersionNumber","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"incrementVersionNumber","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"uint256","name":"_chainPrefix","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"attestationId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isRegistered","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"portalId","type":"address"}],"stateMutability":"view","type":"function","name":"isRevocable","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct AttestationPayload[]","name":"attestationsPayloads","type":"tuple[]","components":[{"internalType":"bytes32","name":"schemaId","type":"bytes32"},{"internalType":"uint64","name":"expirationDate","type":"uint64"},{"internalType":"bytes","name":"subject","type":"bytes"},{"internalType":"bytes","name":"attestationData","type":"bytes"}]},{"internalType":"address","name":"portal","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"massImport"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"attestationId","type":"bytes32"},{"internalType":"struct AttestationPayload","name":"attestationPayload","type":"tuple","components":[{"internalType":"bytes32","name":"schemaId","type":"bytes32"},{"internalType":"uint64","name":"expirationDate","type":"uint64"},{"internalType":"bytes","name":"subject","type":"bytes"},{"internalType":"bytes","name":"attestationData","type":"bytes"}]},{"internalType":"address","name":"attester","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"replace"},{"inputs":[{"internalType":"bytes32","name":"attestationId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"revoke"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"attest((bytes32,uint64,bytes,bytes),address)":{"details":"This function can only be called by a registered Portal.While it might not align with typical business rules, it is technically      possible to register expired attestations.","params":{"attestationPayload":"The payload used to create and register the attestation.","attester":"The address of the account issuing the attestation."}},"balanceOf(address,uint256)":{"details":"Only considers non-revoked, non-replaced and non-expired attestations","params":{"account":"The address of the token holder","id":"ID of the attestation"},"returns":{"_0":"The _owner's balance of the attestations on a given attestation ID"}},"balanceOfBatch(address[],uint256[])":{"params":{"accounts":"The addresses of the attestation holders","ids":"ID of the attestations"},"returns":{"_0":"The _owner's balance of the attestation for a given address (i.e. balance for each (owner, id) pair)"}},"bulkAttest((bytes32,uint64,bytes,bytes)[],address)":{"params":{"attestationsPayloads":"the attestations payloads to create attestations and register them"}},"bulkReplace(bytes32[],(bytes32,uint64,bytes,bytes)[],address)":{"params":{"attestationIds":"the list of IDs of the attestations to replace","attestationPayloads":"the list of attestation payloads to create the new attestations and register them","attester":"the account address issuing the attestation"}},"bulkRevoke(bytes32[])":{"params":{"attestationIds":"the IDs of the attestations to revoke"}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getAttestation(bytes32)":{"params":{"attestationId":"the attestation identifier"},"returns":{"_0":"the attestation"}},"getAttestationIdCounter()":{"returns":{"_0":"The attestation counter"}},"getChainPrefix()":{"returns":{"_0":"The chain prefix"}},"getNextAttestationId()":{"returns":{"_0":"The next attestation ID"}},"getVersionNumber()":{"returns":{"_0":"The current version number"}},"incrementVersionNumber()":{"returns":{"_0":"The new version number"}},"initialize(address,uint256)":{"details":"The `_chainPrefix` must be more than 0x0001000000000000000000000000000000000000000000000000000000000000      and the last 60 characters must be 0","params":{"_chainPrefix":"defines the chain prefix to be used in the attestation ID","_router":"the address of the Router contract"}},"isRegistered(bytes32)":{"params":{"attestationId":"the attestation identifier"},"returns":{"_0":"true if the attestation is registered, false otherwise"}},"isRevocable(address)":{"params":{"portalId":"the portal address (ID)"},"returns":{"_0":"true if the attestations issued by this portal are revocable, false otherwise"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"replace(bytes32,(bytes32,uint64,bytes,bytes),address)":{"params":{"attestationId":"the ID of the attestation to replace","attestationPayload":"the attestation payload to create the new attestation and register it","attester":"the account address issuing the attestation"}},"revoke(bytes32)":{"params":{"attestationId":"the ID of the attestation to revoke"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"attest((bytes32,uint64,bytes,bytes),address)":{"notice":"Registers an attestation in the AttestationRegistry."},"balanceOf(address,uint256)":{"notice":"Checks if an address owns a valid attestation following the ERC-1155 interface"},"balanceOfBatch(address[],uint256[])":{"notice":"Get the balance of multiple account/attestation pairs following ERC-1155"},"bulkAttest((bytes32,uint64,bytes,bytes)[],address)":{"notice":"Registers attestations to the AttestationRegistry"},"bulkReplace(bytes32[],(bytes32,uint64,bytes,bytes)[],address)":{"notice":"Replaces attestations for given identifiers and replaces them with new attestations"},"bulkRevoke(bytes32[])":{"notice":"Bulk revokes a list of attestations for the given identifiers"},"getAttestation(bytes32)":{"notice":"Gets an attestation by its identifier"},"getAttestationIdCounter()":{"notice":"Gets the attestation counter"},"getChainPrefix()":{"notice":"Gets the chain prefix used to generate the attestation IDs"},"getNextAttestationId()":{"notice":"Get the next attestation ID including chain identifier"},"getVersionNumber()":{"notice":"Gets the registry version"},"incrementVersionNumber()":{"notice":"Increments the registry version"},"initialize(address,uint256)":{"notice":"Contract initialization"},"isRegistered(bytes32)":{"notice":"Checks if an attestation is registered"},"isRevocable(address)":{"notice":"Checks whether a portal issues revocable attestations"},"replace(bytes32,(bytes32,uint64,bytes,bytes),address)":{"notice":"Replaces an attestation for the given identifier and replaces it with a new attestation"},"revoke(bytes32)":{"notice":"Revokes an attestation for a given identifier"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/AttestationRegistry.sol":"AttestationRegistry"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"keccak256":"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e","urls":["bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c","dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165CheckerUpgradeable.sol":{"keccak256":"0x94edef8687cf1335a114f7e7267fa92cb0d9e61afde8d62589aceede6c245caf","urls":["bzz-raw://9dbcc182503f671c6bb7e2c24fe5f13e4c7604389d6cfccd074bc1d9fa7b86df","dweb:/ipfs/QmdioHDNmTsJx9xMcwBvA7QJhC4MzTmDmWHiWsZpbETLXx"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"src/AttestationRegistry.sol":{"keccak256":"0x3c56f7eee3ac86a0cae61be91ede7bcbf5c8af10805ed52224f324a44a55f98b","urls":["bzz-raw://e73409f2983c864ded4be63a649c9dbd1d25928e670784cd9b6b2173e3246c23","dweb:/ipfs/QmXixGjYaZzua1ucUHoBwNtN9mXbBAiB4Sg91uxiX443A2"],"license":"MIT"},"src/Common.sol":{"keccak256":"0x07627815aee6d7b83ae82aef10f45b54ac0be15cbbbb249300cc097475475c24","urls":["bzz-raw://72b82fc8baf2256b13b0b36f343328bfcd7d979304c47eca5731237d744fd094","dweb:/ipfs/QmQW23C75qvgR5H2cUgCJ5zZDwHCDLBbESGExwVCmJjL4k"],"license":"MIT"},"src/DefaultPortalV2.sol":{"keccak256":"0x7c18ba58fb72b1831c834650860b748bb6e8f7b85344184fea2ed8d6bb76eba8","urls":["bzz-raw://75bba0ba5980cf98d939f505925af829770a52c3268ac30a5a2157632f839522","dweb:/ipfs/QmPMqALZpYKUbEeAsSwEzBB9uAnSxU7JLkmTL6P8AL5t1W"],"license":"MIT"},"src/ModuleRegistry.sol":{"keccak256":"0xe6f4dd301a87493d825b7b228f23fcc0dc061346525c3a3ef72acd12069a5ee0","urls":["bzz-raw://0bdef98113aa85895e6f61e27e0b946715d1d1e8d6c6a96b16e6d46025e7af88","dweb:/ipfs/QmRvq2P4PmUFBnh6KSB35gryaTrJD47CNiy69yqpMCwcZx"],"license":"MIT"},"src/PortalRegistry.sol":{"keccak256":"0xe004c6d29a99520af021af80fcba3d1a4ec31ab836bb13e2ba3d668cedb14fb8","urls":["bzz-raw://c61d5aab8db5cef8d3d77cb23aa8e4867abf32b434281c2405c6f46de586f8ba","dweb:/ipfs/QmZZdGdskovJPnusDmZ9Rc6rWVeLibEhNF4MTFpFm87xmx"],"license":"MIT"},"src/SchemaRegistry.sol":{"keccak256":"0x6cf8eb42ef410d84e77214f95333e598a6c154e3b7a4e7160b06e051862c168c","urls":["bzz-raw://68d561d0d3c633704f902350c8f2a842a5c19300ae35b1fbeb2cf3d8ee58aaae","dweb:/ipfs/QmcZ3ofnBCmkmb8FZxWc9f2oP5L2tYweaaA6q5amA7uGio"],"license":"MIT"},"src/abstracts/AbstractModule.sol":{"keccak256":"0xae791069d8bd3f943d06975383ae0d0231498a8bd70d0ed7c8a815a4fddc9cf8","urls":["bzz-raw://e32efbdee61914e3b91b29aabd5ddbc202546aa910ec005f7ee63a9f57603395","dweb:/ipfs/QmaWYQVQSD5mo1ujPD3rm251UkWcBDcRm8y7i7QXurE2Ky"],"license":"MIT"},"src/abstracts/AbstractModuleV2.sol":{"keccak256":"0x87a3060cac439296ef19c719a6abe3776c59ab858c9d935a07e0c70c57387ac3","urls":["bzz-raw://2208b4e53226d1a08ca45ccda9686abc7d339aee8b3554823585fb3acc0c1479","dweb:/ipfs/QmdFMkJ49tBRUCT5oVMFGhub9ZFWL6wzv3jiW35XsLbuYi"],"license":"MIT"},"src/abstracts/AbstractPortalV2.sol":{"keccak256":"0xef4d0ec62960936027d0c9271bfc76d0b913ea36dd88ef077f676c62f06ffe72","urls":["bzz-raw://c8be53b100c84b36310ea7b9c22628052f0ee258b6c1cef15d0572a652e8c2e2","dweb:/ipfs/QmSE98AGeEBQk3R66wpRmkePCR8BCT6ruk3zLZTzuf2oak"],"license":"MIT"},"src/interfaces/IPortal.sol":{"keccak256":"0xbae2383850a8835e1202c58d5dd4c0bca4e9b631cd85efe6c4f5c62cf769c5e3","urls":["bzz-raw://8687bf6ce8049ff7d4eeadef51e55cdab58e1ec7a9fb93a2037ae43f426420a8","dweb:/ipfs/QmTqX5BfttfbrJxb9yyCxFpqAix9AxAWzGLodFYHhjfrY4"],"license":"MIT"},"src/interfaces/IRouter.sol":{"keccak256":"0x28599dbf7e8d3903c57c0df03a6f4ee26e731452c79755525c34a1b18ddd4d9c","urls":["bzz-raw://122078d4c05dc8a8205d766017e3880665e44e726b82aa710347e95989d338a3","dweb:/ipfs/QmSToNkFkzs8cJ2xQeQqsrUBC73tDXjGirGafK6ZkfXTm2"],"license":"MIT"},"src/types/Enums.sol":{"keccak256":"0x6c68eecf740a3f51211c954a99b43ebc2186e7b3e79b6c984937ad5c983e45a2","urls":["bzz-raw://6c185006a0fde12fd59733b01578bbeefc2c0349c5f7899cc0652d3e3dd1a142","dweb:/ipfs/QmUsw5sEwBDM4skEaHHdRovDXB12F47pQtUjE4Dq2SBu3t"],"license":"MIT"},"src/types/Structs.sol":{"keccak256":"0x8e3d41554d3c35181c36e019deddebfa6cb52a3f7b53c73c197fa2a87184ed2a","urls":["bzz-raw://bc65fc7d7491ad0a26c8dd5ca1a1bb54d935ad6b59d99463c781446d57013f2a","dweb:/ipfs/QmTgtxg6oNmf6QnbEcNdQosFutUYs7tkZSeN9KVpKGtWWK"],"license":"MIT"}},"version":1},"id":54}